请求正文格式错误 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
这真的取决于你想如何组织它。
在我们的 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
这真的取决于你想如何组织它。