Les choses ont changé une fois de plus à partir d' Express 4.16.0 , vous pouvez maintenant utiliser express.json()
et express.urlencoded()
tout comme dans Express 3.0 .
C'était différent à partir d' Express 4.0 à 4.15 :
$ npm install --save body-parser
et alors:
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 middleware pour analyser les données de publication du corps.
Ajoutez 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 l' 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ée.
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()
, et 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 codage en plusieurs parties (pour prendre en charge le téléchargement de fichiers par exemple), vous devez lire ceci .
bodyParser()
réponses ici devraient également lire la réponse de