Estoy usando express 4.0 y soy consciente de que se ha extraído el analizador corporal del núcleo express, estoy usando el reemplazo recomendado, sin embargo, estoy obteniendo
body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12
body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29
¿Dónde encuentro estos supuestos middlewares? o no debería estar recibiendo este error?
var express = require('express');
var server = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('./config/passport');
var routes = require('./routes');
mongoose.connect('mongodb://localhost/myapp', function(err) {
if(err) throw err;
});
server.set('view engine', 'jade');
server.set('views', __dirname + '/views');
server.use(bodyParser());
server.use(passport.initialize());
// Application Level Routes
routes(server, passport);
server.use(express.static(__dirname + '/public'));
server.listen(3000);
fuente
extended
hacer?curl --data "user[email]=foo&user[password]=bar" localhost:3000/login
sería recibido por el servidor en elreq.body
que{ user[email]: "foo", ...}
mientras quereq.body
sería{user: {email: "foo", ... }}
conextended: true
.¿Quieres cero advertencias ? Úselo así:
Explicación : El valor predeterminado de la
extended
opción ha quedado en desuso, lo que significa que debe pasar explícitamente el valor verdadero o falso.fuente
app.use(bodyParser.json()).use(bodyParser.urlencoded({ extended: true }));
En versiones anteriores de express, teníamos que usar:
porque body-parser era un middleware entre nodo y express. Ahora tenemos que usarlo como:
fuente
Si está utilizando express>
4.16
, puede usarexpress.json()
yexpress.urlencoded()
Source Express 4.16.0 - Fecha de lanzamiento: 2017-09-28
Con este,
se convierte,
fuente
Cuando
extended
se establece en verdadero, los cuerpos desinflados (comprimidos) se inflarán; cuandoextended
se establece en falso, los cuerpos desinflados se rechazan.fuente
¿Cuál es su opinión para usar express-generator? Generará un proyecto esqueleto para empezar,
without deprecated messages
apareció en su registroejecuta este comando
Ahora, cree una nueva aplicación de inicio Express.js escribiendo este comando
your Node projects folder
.Ese comando le dice a express que genere una nueva aplicación Node.js con el nombre
node-express-app
.entonces
Go to the newly created project directory
,install npm packages
ystart the app
usando el comandofuente
Encontré eso al agregar
ayuda, a veces es cuestión de su consulta lo que determina cómo express lo maneja.
Por ejemplo, podría ser que sus parámetros se pasen en la URL en lugar de en el cuerpo
En tal caso, debe capturar los parámetros cuerpo y url y usar el que esté disponible (con preferencia para los parámetros del cuerpo en el caso a continuación)
fuente
app.use(bodyParser.urlencoded({extended: true}));
Tengo el mismo problema pero esto funciona para mí. Puedes probar esta parte extendida.
fuente