Вещи изменились еще раз , начиная Экспресс 4.16.0 , теперь вы можете использовать express.json()и express.urlencoded()так же , как в Express 3.0 .
Это отличалось, начиная с Express 4.0 до 4.15 :
$ npm install --save body-parser
а потом:
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
}));
Остальное как в Express 3.0 :
Во-первых, вам нужно добавить промежуточное программное обеспечение для анализа почтовых данных тела.
Добавьте одну или обе следующие строки кода:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Затем в вашем обработчике используйте req.bodyобъект:
// 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;
// ...
});
Обратите внимание, что использование express.bodyParser()не рекомендуется.
app.use(express.bodyParser());
...эквивалентно:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Проблемы безопасности существуют express.multipart(), поэтому лучше явно добавить поддержку для конкретного типа (ов) кодирования, который вам требуется. Если вам нужно многокомпонентное кодирование (например, для поддержки загрузки файлов), вам следует прочитать это .
bodyParser()ответы здесь, должен также прочитать ответ