NodeJS SyntaxError:JSON中位置16处出现意外字符串

时间:2018-08-01 08:40:32

标签: node.js error-handling body-parser

我正在使用body-parser中间件来处理REST API中的JSON请求正文。

我试图“破解”并测试系统如何处理此类输入:

// Note the "form": "a" does not include the required ","
{
    "from": "a"
    "destination": "Netanya",
    "date": {
        "start": "15-07-2018"
    }
}

现在我不知道该在哪里输入错误的错误语法。

我试图删除正文分析器,但未引发错误,但是,当然,我无法在req.body中保存数据。

1 个答案:

答案 0 :(得分:3)

here所述,并在以下代码中进行了测试:

app.use(bodyParser.json());

app.use(function (error, req, res, next) {
  if(error instanceof SyntaxError){ //Handle SyntaxError here.
    return res.status(500).send({data : "Invalid data"});
  } else {
    next();
  }
});

UPDATE =========

有六种类型的错误:

  1. EvalError::错误使用eval()函数时引发。
  2. RangeError::当数字变量超出其允许范围时引发。
  3. ReferenceError::使用无效引用时引发。
  4. SyntaxError::在解析JavaScript代码时发生语法错误时引发。
  5. TypeError::当变量的类型与预期不符时引发。
  6. URIError::以不正确的方式使用encodeURI()或decodeURI()函数时引发。