Dans mon application de nœud, j'utilise express. tout fonctionne bien, mais j'obtiens une erreur dans le cmd
. J'utilise tous les modules mis à jour ...
mon code:
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!');
});
Erreur:
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
Quelqu'un peut-il m'aider à comprendre ce problème s'il vous plaît?
Réponses:
Vous devez définir explicitement
extended
pourbodyParser.urlencoded()
car la valeur par défaut va changer dans la prochaine version majeure debody-parser
. Exemple:Depuis la
express
4.16.0, vous pouvez également faire:la source
qs
module pour analyser le corps, ce qui permet d'analyser un tableau imbriqué comme la syntaxe commetest[foo][bar]=baz
(qui devient{'test': {'foo': {'bar': 'baz'}}}
)Attention: avec
express version => 4.16.0
lebody-parser
middleware a été ajouté sous les méthodesexpress.urlencoded()
etexpress.json()
Qui peut être utilisé comme:
la source
L'erreur indique que vous devez fournir l'option étendue pour l'analyseur corporel comme suit:
la source
À partir de la version 4.16.0 d' Express , on s'attend à ce que vous passiez une propriété étendue à l'intérieur de bodyParser.urlencoded ()
Voir la page de documentation de npm.js pour un exemple: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
la source
Si vous êtes ici, après mai 2020, cela signifie que vous utilisez sûrement le nœud de la version v13.12.0 .. Donc, app.use (express.urlencoded ({extended: true}))
Cela fonctionnera sûrement pour vous .... # paix
la source
la source