Express + bodyParser.json()+ Postman,req.body是空的

时间:2016-01-19 22:38:53

标签: javascript json node.js express body-parser

使用以下内容时:

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);
});

以及邮递员的以下帖子:

enter image description here

我得到一个空洞的回复。我在使用bodyParser.json()时遵循了很多线程,出于某种原因,我仍然在响应中收到一个空对象。我错过了什么?

2 个答案:

答案 0 :(得分:3)

要使bodyParser.json有效,您应在请求中提供值为Content-Type的{​​{1}}标头。

答案 1 :(得分:2)

使用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);
});

当您在邮递员上发出请求时,请务必选择x-www-form-urlencoded标签而不是raw标签。