Express + bodyParser.json() + Postman,req.body为空
Express + bodyParser.json() + Postman, req.body is empty
使用以下内容时:
var app = require('express')();
var bodyParser = require('body-parser');
app.post('/test', bodyParser.json(), function(req, res) {
res.json(req.body);
});
var port = 4040;
app.listen(port, function() {
console.log('server up and running at port: %s', port);
});
以及来自 Postman 的以下 post:
我得到一个空的响应。我已经关注了很多关于使用 bodyParser.json() 的线程,但出于某种原因,我仍然收到一个空对象作为响应。我错过了什么?
一种更安全的使用方法 body-parser 是将其用作整个应用程序的中间件。必须以这种方式重构代码:
// Permit the app to parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// Use body-parser as middleware for the app.
app.use(bodyParser.json());
app.post('/test', function(req, res) {
res.json(req.body);
});
当您在 Postman 上发出请求时,请确保 select x-www-form-urlencoded
选项卡而不是 raw
选项卡。
要使 bodyParser.json
正常工作,您应该在请求中为 Content-Type
header 提供值 application/json
。
使用以下内容时:
var app = require('express')();
var bodyParser = require('body-parser');
app.post('/test', bodyParser.json(), function(req, res) {
res.json(req.body);
});
var port = 4040;
app.listen(port, function() {
console.log('server up and running at port: %s', port);
});
以及来自 Postman 的以下 post:
我得到一个空的响应。我已经关注了很多关于使用 bodyParser.json() 的线程,但出于某种原因,我仍然收到一个空对象作为响应。我错过了什么?
一种更安全的使用方法 body-parser 是将其用作整个应用程序的中间件。必须以这种方式重构代码:
// Permit the app to parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// Use body-parser as middleware for the app.
app.use(bodyParser.json());
app.post('/test', function(req, res) {
res.json(req.body);
});
当您在 Postman 上发出请求时,请确保 select x-www-form-urlencoded
选项卡而不是 raw
选项卡。
要使 bodyParser.json
正常工作,您应该在请求中为 Content-Type
header 提供值 application/json
。