632 votes

bodyParser est déprécié express 4

J'utilise express 4.0 et je sais que l'analyseur de corps a été retiré du noyau d'express. J'utilise le remplacement recommandé, mais j'obtiens les résultats suivants

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 avoir 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);

3 votes

Note pour les futurs lecteurs, le script de l'OP utilise var server = express() mais en lisant (apparemment TOUTES) les réponses ci-dessous, supposez que la ligne var app = express() a été utilisé.

9voto

Parth Raval Points 1074

body-parser est un morceau de middleware express qui lit l'entrée d'un formulaire et la stocke comme un objet javascript accessible par req.body body-parser' doit être installé (via npm install --save body-parser ) Pour plus d'informations, voir : https://github.com/expressjs/body-parser

   var bodyParser = require('body-parser');
   app.use(bodyParser.json()); // support json encoded bodies
   app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

Lorsque extended est défini comme vrai, alors les corps dégonflés (compressés) seront gonflés ; quand extended a la valeur false, les corps dégonflés sont rejetés.

8voto

Au lieu de bodyParser.json() il suffit d'utiliser express.json() , Vous n'avez pas besoin d'installer body-parser

Par exemple,

const express = require("express");

const app = express();
app.use(express.json());

1voto

Ian Mbae Points 74

J'ai découvert qu'en ajoutant

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));

aide, parfois c'est une question de demande qui détermine comment l'express la traite.

Par exemple, il se peut que vos paramètres soient passés dans le champ URL plutôt que dans le corps

Dans un tel cas, vous devez capturer à la fois la corps et url et utiliser ceux qui sont disponibles (avec une préférence pour les paramètres du corps dans le cas ci-dessous).

app.route('/echo')
    .all((req,res)=>{
        let pars = (Object.keys(req.body).length > 0)?req.body:req.query;
        res.send(pars);
    });

1voto

Basheer AL-MOMANI Points 5565

Quel est votre avis sur l'utilisation d'express-generator qui génère un projet squelette pour commencer, without deprecated messages apparu dans votre journal

exécutez cette commande

npm install express-generator -g

Maintenant, créez une nouvelle application de démarrage Express.js en tapant cette commande dans le fichier your Node projects folder .

express node-express-app

Cette commande dit à 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 start the app en utilisant la commande

cd node-express-app && npm install && npm start

0 votes

Est-ce que ça va aider ?

1voto

aashray jain Points 101

body-parser deprecated bodyParser : utiliser des middlewares individuels json/urlencoded node_modules \express\lib\router\layer.js :95:5

express deprecated req.host : Utilisez req.hostname à la place node_modules \body -parser \index.js :100:29

body-parser deprecated undefined extended : fournir une option étendue node_modules \body -parser \index.js :105:29

Pas besoin de mettre à jour express ou body-parser

Ces erreurs seront supprimées. Suivez ces étapes :-

  1. app.use(bodyParser.urlencoded({extended : true})) ; // Cela aidera à l'encodage.
  2. app.use(bodyParser.json()) ; // ceci supportera le format json

Il fonctionnera.

Bon codage !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X