请求正文中格式错误的json

时间:2018-04-09 23:04:58

标签: json node.js reactjs axios express-router

在我们的反应应用程序中,我们将在文本区域中输入的json字符串发布到快速路由器功能。在客户端,我们使用axios发布数据来表达路由器。

我们确实收到快速路由器功能中的数据,如:

const reqData = request.body

但是当我们检查路由器函数中收到的数据时,我们传递的json被另一个花括号括起来:

{{"user":"emp","comapany":"acme"}}

外部大括号会自动添加,因此,JSON.parse失败。

有没有办法避免这种情况?

1 个答案:

答案 0 :(得分:1)

我认为问题在于,当您通常想要提取特定属性时,您正在使用对整个req.body的引用。

从客户端发布时,请使用命名密钥:

axios.post(`url`, {
  namedKey: {      // -> call it something suitable to your scenario
    user: 'emp',
    company: 'acme'
  }
})

在快递路由器中,使用相同名称进行结构化:

const { namedKey } = request.body

这也可以通过逐个删除属性来解决:

客户端:

axios.post('url', {
  user: 'emp',    // user key
  company: 'acme' // company key
})

表达路由器:

const { user, company } = req.body

这实际上取决于你想要如何组织它。