Wszystko się zmieniło od uruchomienia Express 4.16.0 , możesz teraz używać express.json()
i express.urlencoded()
tak jak w Express 3.0 .
To było inne, począwszy od Express 4.0 do 4.15 :
$ npm install --save body-parser
i wtedy:
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
}));
Reszta jest jak w Express 3.0 :
Najpierw musisz dodać oprogramowanie pośrednie, aby przeanalizować dane postu treści.
Dodaj jeden lub oba z następujących wierszy kodu:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Następnie w swoim module obsługi użyj req.body
obiektu:
// 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;
// ...
});
Pamiętaj, że użycie express.bodyParser()
nie jest zalecane.
app.use(express.bodyParser());
...jest równa:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Istnieją obawy dotyczące bezpieczeństwa express.multipart()
, dlatego lepiej jest jawnie dodać obsługę określonych typów kodowania, których potrzebujesz. Jeśli potrzebujesz kodowania wieloczęściowego (na przykład w celu obsługi przesyłania plików), powinieneś to przeczytać .
bodyParser()
z odpowiedzi tutaj, powinien również przeczytać odpowiedź