Javascript:在Express JS中处理意外的JSON错误

时间:2018-07-26 09:33:26

标签: javascript json node.js express

我试图通过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格式错误

1 个答案:

答案 0 :(得分:0)

您缺少'readValue'的值。应如下所示:

{
"userId":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InNoYW1vbjVAYWNjdWJpdHMuY29tIiwiaWQiOjExNCwiaWF0IjoxNTMxOTgyNDQ0LCJleHAiOjE1MzI1ODcyNDR9.dv1zEnLsmKXbSE4wKbSOdYX3p7v5N5nh9kbz6PA_4TE",
"readValue":"falseuyuyuyu"
}

编辑:对不起,我不明白这个问题

Express有其自己的错误处理中间件。万一发生错误,Express会捕获错误(同步代码)并进行处理,这就是为什么您无法获得错误消息的原因。您需要做的是编写自己的中间件来处理格式错误。请转到:https://expressjs.com/en/guide/error-handling.html并检查编写错误处理程序部分。