Express正文解析器整个请求正文是没有值的键

时间:2018-09-16 19:36:34

标签: ios node.js express body-parser

我想使用express node.js和iOS客户端获取帖子中的正文值。这是我的服务器代码:

app.post('/user', function (req, res) {
  console.log(req.body)
  console.log(req.body.firstName)
})

在客户端上,这是我正在使用json主体的内容:

let json = ["firstName": "First Dude",
                "lastName": "Last dude"]
    let body = try! JSONSerialization.data(withJSONObject: json, options: [])

当我击中终点时,我得到:

{ '{"lastName":"Last dude","firstName":"First Dude"}': '' }
undefined

哪个键看起来像是整个json正文,值是空的。

req.body.firstName也未定义。

如何使用主体解析器从键中获取值?

2 个答案:

答案 0 :(得分:1)

我不知道到底是什么

  

models.User

是吗?

但是在这一部分:

app.post('/user', function (req, res) {
  console.log(req.body)
  console.log(req.body.firstName)
  var user = models.User.create({
      firstName: req.body.firstName,
      lastName: req.body.lastName,
     id: uuidV1(),
  });
  res.send(user.toJSON())
})

您应该写

  

res.json(user.toJSON())

代替

  

res.send(user.toJSON())

答案 1 :(得分:0)

我需要将内容类型添加到请求和request.setValue(application/json, forHTTPHeaderField: "Content-Type")中。

app.use(bodyParser.json({ type: 'application/json' })) export abstract class Router { }