Вещи изменились еще раз , начиная Экспресс 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()
ответы здесь, должен также прочитать ответ