Les choses ont modifié en commençant une fois de plus Express 4.16.0 vous pouvez maintenant utiliser express.json()
y express.urlencoded()
comme dans Express 3.0 .
C'était différents démarrage Express 4.0 à 4.15 :
$ npm install --save body-parser
et ensuite :
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
Le reste est comme dans Express 3.0 :
Tout d'abord, vous devez ajouter un intergiciel pour analyser les données post du corps.
Ajoutez l'une ou les deux lignes de code suivantes :
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Ensuite, dans votre gestionnaire, utilisez la fonction req.body
objet :
// assuming POST: name=foo&color=red <-- URL encoding
//
// or POST: {"name":"foo","color":"red"} <-- JSON encoding
app.post('/test-page', function(req, res) {
var name = req.body.name,
color = req.body.color;
// ...
});
Notez que l'utilisation de express.bodyParser()
n'est pas recommandé.
app.use(express.bodyParser());
...est équivalent à :
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Des problèmes de sécurité existent avec express.multipart()
Il est donc préférable d'ajouter explicitement la prise en charge du ou des types d'encodage spécifiques dont vous avez besoin. Si vous avez besoin d'un encodage multipart (pour supporter le téléchargement de fichiers par exemple), vous devez alors lisez ceci .
41 votes
SÉCURITÉ : tout le monde utilise
bodyParser()
à partir des réponses ici devraient également lire Réponse de @SeanLynch ci-dessous0 votes
Utilisez le analyseur de corps module. Voici quelques Exemples d'utilisation de body-parser