Речі змінилися ще раз , починаючи Експрес 4.16.0 , тепер ви можете використовувати express.json()
і express.urlencoded()
так само , як в Express 3.0 .
Це було різним, починаючи з експрес 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()
відповіді тут, також повинні прочитати відповідь @SeanLynch нижче