Le cose sono cambiate ancora una volta a partire da Express 4.16.0 , ora puoi usare express.json()
e express.urlencoded()
proprio come in Express 3.0 .
È stato diverso a partire da Express 4.0 a 4.15 :
$ npm install --save body-parser
e poi:
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
}));
Il resto è come in Express 3.0 :
Innanzitutto è necessario aggiungere un middleware per analizzare i dati di post del corpo.
Aggiungi una o entrambe le seguenti righe di codice:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Quindi, nel gestore, utilizzare l' req.body
oggetto:
// 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;
// ...
});
Si noti che l'uso di express.bodyParser()
non è raccomandato.
app.use(express.bodyParser());
...è equivalente a:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Esistono problemi di sicurezza express.multipart()
, quindi è meglio aggiungere esplicitamente il supporto per i tipi di codifica specifici richiesti. Se hai bisogno della codifica multipart (ad esempio per supportare il caricamento di file), dovresti leggere questo .
bodyParser()
risposte qui dovrebbero anche leggere la risposta di