Mọi thứ đã thay đổi một lần nữa bắt đầu từ Express 4.16.0 , giờ đây bạn có thể sử dụng express.json()
và express.urlencoded()
giống như trong Express 3.0 .
Đây là khác nhau bắt đầu nhanh 4,0-4,15 :
$ npm install --save body-parser
và sau đó:
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
}));
Phần còn lại giống như trong Express 3.0 :
Trước tiên, bạn cần thêm một số phần mềm trung gian để phân tích dữ liệu bài đăng của cơ thể.
Thêm một hoặc cả hai dòng mã sau:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Sau đó, trong trình xử lý của bạn, sử dụng req.body
đối tượng:
// 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;
// ...
});
Lưu ý rằng việc sử dụng express.bodyParser()
không được khuyến khích.
app.use(express.bodyParser());
...tương đương với:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Mối quan tâm bảo mật tồn tại với express.multipart()
, và vì vậy tốt hơn là thêm hỗ trợ cho loại mã hóa cụ thể mà bạn yêu cầu. Nếu bạn cần mã hóa nhiều phần (để hỗ trợ tải lên các tệp chẳng hạn) thì bạn nên đọc phần này .
bodyParser()
từ câu trả lời ở đây cũng nên đọc câu trả lời của