En mi aplicación de nodo, estoy usando express. todo funciona bien, pero recibo un error en el cmd
. Yo uso todos son módulos actualizados ...
mi código :
var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies
app.get('/',function(req,res){
res.render('index.jade');
});
app.get('/login',function(req,res){
res.render('index.jade');
});
app.post('/login',function(req,res){
console.log(req.body);
});
app.get('/signup',function(req,res){
res.render('signup.jade');
});
var env = process.env.PORT || 3000;
app.listen(env, function(req, res){
console.log('i am working!');
});
Error:
D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: '[email protected]', password: 'pass' } // i am getting response
¿Puede alguien ayudarme a entender este problema por favor?
Respuestas:
Usted tiene que establecer explícitamente
extended
parabodyParser.urlencoded()
desde el valor por defecto va a cambiar en la próxima versión principal debody-parser
. Ejemplo:Desde
express
4.16.0, también puedes hacer:fuente
qs
módulo para analizar el cuerpo, lo que permite analizar una matriz anidada como la sintaxis comotest[foo][bar]=baz
(que se convierte{'test': {'foo': {'bar': 'baz'}}}
)Atención: con
express version => 4.16.0
elbody-parser
middleware se volvió a agregar bajo los métodosexpress.urlencoded()
yexpress.json()
Que se puede usar como:
fuente
El error dice que debe proporcionar la opción extendida para el analizador de cuerpo de la siguiente manera:
fuente
A partir de la versión Express 4.16.0, se espera que pase la propiedad extendida dentro de bodyParser.urlencoded ()
Consulte la página de documentación de npm.js para ver una muestra: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
fuente
Si está aquí, después de mayo de 2020, eso significa que seguramente está usando el nodo de la versión v13.12.0 .. Entonces, app.use (express.urlencoded ({extended: true}))
Esto seguramente va a funcionar para usted ... # paz
fuente
fuente