未捕获到Mongoose验证异常

时间:2015-02-15 18:20:08

标签: node.js mongodb mongoose mean

我正在MEAN应用中设置用户注册。但是,我正在努力处理错误,特别是使用Mongoose验证。

在下面的代码中,当我向我的API提供了错误的电子邮件时,我的块中没有捕获mongoose抛出的异常。

try {
    User.save(function (err, user) {
        if (err) throw err; //This exception in not catched :(

        res.status(200).json({
            _status: 200,
            _content: {
                message: "OK",
                data: user
            }
        });
    });
} catch (err) {
    res.status(400).json({
        _status: 400,
        _content: {
            message: err.toString()
        }
    });
}

如何捕获此异常?

1 个答案:

答案 0 :(得分:1)

为什么不这样做呢:

User.save(function (err, user) {
  if (err) {
    return res.status(400).json({
        _status: 400,
        _content: {
            message: err.toString()
        }
    });
  }
  res.status(200).json({
    _status: 200,
    _content: {
      message: "OK",
      data: user
    }
  });
});

您的代码无法正常工作,因为尝试catch无法捕获回调中抛出的异常。