0

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

我们确实在快速路由器功能中接收数据,例如:

const reqData = request.body

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

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

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

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

4

1 回答 1

1

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

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

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

在您的快速路由器中,使用相同名称的 desctructure:

const { namedKey } = request.body

这也可以通过逐个提取属性来解决:

客户:

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

快速路由器:

const { user, company } = req.body

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

于 2018-04-09T23:57:31.840 回答