请求正文格式错误 json

Malformed json in request body

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

我们确实在 express router 函数中接收数据,例如:

const reqData = request.body

但是当我们检查在路由器函数中接收到的数据时,我们传递的 json 被另一个大括号包裹着:

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

外括号似乎是自动添加的,因此 JSON.parse 失败了。

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

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

从客户端发帖时,使用命名键:

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

在您的 express 路由器中,从相同的名称中解构:

const { namedKey } = request.body

这也可以通过取消属性 one-by-one:

来解决

客户:

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

快速路由器:

const { user, company } = req.body

这真的取决于你想如何组织它。