到服务器控制器的POST方法期间,主体为空

时间:2018-08-30 14:32:59

标签: javascript node.js express mongoose backend

我正在从客户端请求包含对象的发送响应,但是在后端,当我console.log(req.body)时,服务器将其显示为空白对象。

这几乎是我过去所做的示例中的复制粘贴,它发送并请求将对象发布到数据库。

这是我拥有的:

这是在“ api.js”中

end

“数据”是我要发送的对象,在这里我用console.log(data)来确保其不为空或不为空。

这将发送到我的/ getnums路由,该路由会将其发送到后端的post方法:

_translateButton = Tween<double>(
      begin: _fabHeight,
      end: -14.0,
    ).animate(CurvedAnimation(
      parent: _animationController,
      curve: Interval(
        0.0,
        0.75,
        curve: _curve,
      ),
    ));

在这里,console.log(req.body)显示在终端“ {}”

我已经尝试将body更改为body:数据而不是对其进行字符串化。

查看我的猫鼬模式后,现在出现此错误:

var postBaseNums = data => {
    console.log(data)
    fetch('/getnums', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    })
    .then(res => res.send())
}

这是有道理的,因为body是一个空对象。尽管我觉得它应该是一个字符串,因为在api.js中我有:body:JSON.stringify(data)

那我在做什么错了?

1 个答案:

答案 0 :(得分:0)

假设您使用express作为服务器或类似服务器

安装主体解析器

npm install --save body-parser

添加中间件

//Add this where you initialize the server app
var bodyParser = require('body-parser')
app.use( bodyParser.json() )


//Your req.body is now parsed
postNums: (req, res, next) => {
    console.log(req.body)
    //...stuff
}