NodeJS req.body总是空的

时间:2018-06-18 01:52:26

标签: node.js express postman body-parser

  

我的server.js代码:

const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
    res.setHeader('Access-Control-Allow-Origin', '*');
    next();
});

const AboutController = require('./controllers/AboutController');
app.use('/about', AboutController);
  

AboutController.js

router.post('/store', (req, res, next) => {
    // GETTING REQUEST DETAILS AND INITIALIZATION
    let content         = req.body.content;
    let company_name    = req.body.company_name;
    console.log(req.body);
});
module.exports = router;
  

问题

req.body 总是返回{},这是空对象,我不知道为什么!

  

我尝试了什么

我尝试console.log(req)并返回了对象,但body对象仍为空!

  

客户端请求

我正在使用Postman form-data 来模拟客户端请求。

2 个答案:

答案 0 :(得分:0)

  

我找到了解决方案..

我使用的是Postman,我使用 form-data 代替原始 json ,它运行正常我不知道为什么但!

答案 1 :(得分:0)

您的邮递员请求无效的原因是您没有在应用中的任何位置解析form-data类型。您解析的唯一中间件是bodyParser.json(),正如它在锡上所说,解析JSON。例如,如果您要解析x-www-form-urlencoded,则可以使用bodyParser.urlencoded()

如果你想要你目前的工作,你需要发送JSON,而不是form-data

无论如何,form-data类型通常用于更大的有效负载(例如:文件)