我试图通过try and catch处理我的express js应用程序中的Unexpetced JSON,所以我想做的是
try{
let body = JSON.parse(req.body);
}catch(e){
res.json({
error:e
})
}
但是Unexpected JSON
中没有引发catch block
错误。
内容类型为application/json
这是JSON请求
{
"userId":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InNoYW1vbjVAYWNjdWJpdHMuY29tIiwiaWQiOjExNCwiaWF0IjoxNTMxOTgyNDQ0LCJleHAiOjE1MzI1ODcyNDR9.dv1zEnLsmKXbSE4wKbSOdYX3p7v5N5nh9kbz6PA_4TE",
"readValue":falseuyuyuyu
}
readValue
格式错误
答案 0 :(得分:0)
您缺少'readValue'的值。应如下所示:
{
"userId":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InNoYW1vbjVAYWNjdWJpdHMuY29tIiwiaWQiOjExNCwiaWF0IjoxNTMxOTgyNDQ0LCJleHAiOjE1MzI1ODcyNDR9.dv1zEnLsmKXbSE4wKbSOdYX3p7v5N5nh9kbz6PA_4TE",
"readValue":"falseuyuyuyu"
}
编辑:对不起,我不明白这个问题
Express有其自己的错误处理中间件。万一发生错误,Express会捕获错误(同步代码)并进行处理,这就是为什么您无法获得错误消息的原因。您需要做的是编写自己的中间件来处理格式错误。请转到:https://expressjs.com/en/guide/error-handling.html并检查编写错误处理程序部分。