【问题标题】:Send POST data with raw json with postman Express使用 postman Express 发送带有原始 json 的 POST 数据
【发布时间】:2018-03-07 00:31:58
【问题描述】:

我正在尝试记录所有数据,然后将其作为响应返回。

app.post('/data', (req, res) => {
  const data = req.body
  console.log(data)
  return res.json({
    data
  })
})

我正在使用 Postman 发送数据。在“正文”选项卡中,我选择了“原始”和“JSON(应用程序/json)”。 Headers 选项卡是 Content-Type application/json。我要发送这个:

    {
      "aa": 23
    }

当我单击发送按钮时,我得到的只是一个空对象,并且我的 console.log 中未定义数据变量。如何解决?我仔细检查了一切。它应该工作,但它没有。

【问题讨论】:

  • 您是否安装了中间件来处理 post 请求数据,例如 body-parser?

标签: javascript json node.js express postman


【解决方案1】:

您似乎向 res.JSON() 传递了一个无效值。试试:

return res.json(data);

【讨论】:

  • 不一定,完全有效的 JS 属性简写
  • 现在我在 Body 中什么都没有,并且数据变量在 console.log 中仍然未定义。
【解决方案2】:

好的,我找到了解决办法。

“由于body-parser模块用于解析body和url,所以应该在调用'req.body...'之前调用它。”

所以我这样做了:

import bodyParser  from 'body-parser'

const app = express()
app.use(bodyParser.urlencoded())
app.use(bodyParser.json())

app.post('/data', (req, res) => {
  const data = req.body
  console.log(data)
  return res.json({
    data
  })
})

现在它可以正常工作了。

【讨论】:

    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2017-01-21
    • 2014-06-06
    相关资源
    最近更新 更多