在我们的反应应用程序中,我们将在文本区域中输入的json字符串发布到快速路由器功能。在客户端,我们使用axios发布数据来表达路由器。
我们确实收到快速路由器功能中的数据,如:
const reqData = request.body
但是当我们检查路由器函数中收到的数据时,我们传递的json被另一个花括号括起来:
{{"user":"emp","comapany":"acme"}}
外部大括号会自动添加,因此,JSON.parse失败。
有没有办法避免这种情况?
答案 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
这实际上取决于你想要如何组织它。