J'utilise express 4.0 et je suis conscient que l'analyseur corporel a été retiré du noyau express, j'utilise le remplacement recommandé, mais je reçois
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
Où puis-je trouver ces supposés middlewares? ou ne devrais-je pas recevoir cette erreur?
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);
la source
extended
-il?curl --data "user[email]=foo&user[password]=bar" localhost:3000/login
seraient reçus par le serveurreq.body
comme{ user[email]: "foo", ...}
alorsreq.body
qu'ils le seraient{user: {email: "foo", ... }}
avecextended: true
.Vous voulez zéro avertissement ? Utilisez-le comme ceci:
Explication : la valeur par défaut de l'
extended
option a été déconseillée, ce qui signifie que vous devez explicitement transmettre une valeur vraie ou fausse.la source
app.use(bodyParser.json()).use(bodyParser.urlencoded({ extended: true }));
Dans les anciennes versions d'express, nous devions utiliser:
parce que l'analyseur de corps était un middleware entre nœud et express. Maintenant, nous devons l'utiliser comme:
la source
Si vous utilisez express>
4.16
, vous pouvez utiliserexpress.json()
etexpress.urlencoded()
Source Express 4.16.0 - Date de sortie: 2017-09-28
Avec ça,
devient,
la source
Lorsque
extended
est défini sur true, les corps dégonflés (compressés) seront gonflés; lorsqu'ilextended
est défini sur faux, les corps dégonflés sont rejetés.la source
Quelle est votre opinion pour utiliser express-generator, il générera un projet squelette pour commencer,
without deprecated messages
apparu dans votre journalexécutez cette commande
Maintenant, créez une nouvelle application de démarrage Express.js en saisissant cette commande
your Node projects folder
.Cette commande indique à express de générer une nouvelle application Node.js avec le nom
node-express-app
.puis
Go to the newly created project directory
,install npm packages
et enstart the app
utilisant la commandela source
J'ai trouvé qu'en ajoutant
aide, parfois c'est une question de requête qui détermine comment express la gère.
Par exemple, il se pourrait que vos paramètres soient passés dans l' URL plutôt que dans le corps
Dans un tel cas, vous devez capturer les paramètres de corps et d' URL et utiliser celui qui est disponible (avec une préférence pour les paramètres de corps dans le cas ci-dessous)
la source
app.use(bodyParser.urlencoded({extended: true}));
J'ai le même problème mais cela fonctionne pour moi. Vous pouvez essayer cette partie étendue.
la source