未捕获 Mongoose 验证异常

Mongoose validation exception not caught

我正在 MEAN 应用程序中设置用户注册。但是,我正在努力处理错误,尤其是 Mongoose 验证。

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

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()
        }
    });
}

如何捕捉这个异常?

你为什么不这样做:

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
    }
  });
});

您的代码将无法运行,因为 try catch 无法捕获回调中抛出的异常。