In meiner Node-App verwende ich Express. alles funktioniert gut, aber ich bekomme Fehler in der cmd
. Ich benutze alle aktualisierten Module ...
Mein 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!');
});
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
Kann mir jemand helfen, dieses Problem zu verstehen?
Antworten:
Sie müssen explizit
extended
fürbodyParser.urlencoded()
da der Standardwert in der nächsten großen Version ändern wird vonbody-parser
. Beispiel:Seit
express
4.16.0 können Sie auch Folgendes tun:quelle
qs
Modul verwendet, um den Body zu analysieren, wodurch ein verschachteltes Array wie die Syntax analysiert werden kann, wie z. B.test[foo][bar]=baz
(was wird{'test': {'foo': {'bar': 'baz'}}}
)Achtung: Mit
express version => 4.16.0
derbody-parser
Middleware wurde wieder unter den Methodenexpress.urlencoded()
und hinzugefügtexpress.json()
Welches kann verwendet werden als:
quelle
Der Fehler besagt, dass Sie die erweiterte Option für den Body-Parser wie folgt bereitstellen müssen:
quelle
Ab Express Version 4.16.0 wird erwartet, dass Sie eine erweiterte Eigenschaft in bodyParser.urlencoded () übergeben.
Ein Beispiel finden Sie auf der Dokumentationsseite von npm.j: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
quelle
Wenn Sie nach Mai 2020 hier sind, bedeutet dies, dass Sie sicher den Knoten der Version v13.12.0 verwenden. Also, app.use (express.urlencoded ({erweitert: true}))
Dies wird sicherlich für Sie funktionieren ... # Frieden
quelle
quelle