如何为Mongoose(当前版本v5.1.5)实现错误处理?
例如,让我们假设以下代码正在查找用户详细信息。
let u = await user.find({ code: id }).lean();
return u;
发生了一些错误,应如何处理?
其次,我们是否可以拥有集中式错误处理函数,只要在任何Mongoose代码中发生错误就会触发该函数,它会被定向到项目中可以处理它的特定函数。
答案 0 :(得分:3)
这里有猫鼬维护者。第一个问题已得到正确回答。 Re:"其次,我们是否可以拥有集中式错误处理功能,只要在任何一个Mongoose代码中发生错误就会触发该函数,它会被定向到项目中可以处理的特定函数。"试试这个:
async function run() {
await mongoose.connect(connectionString);
const schema = new mongoose.Schema({ n: Number });
schema.post('findOne', function(err, doc, next) { console.log('Got error', err.stack); });
const Test = mongoose.model('Test', schema);
console.log(await Test.findOne({ n: 'not a number' }));
}
上发表的博客文章
答案 1 :(得分:2)
您将在.catch
async await方法
假设你有一个功能
handleErrors(req, res, err) {
return res.json({
success: false,
message: err,
data: null
})
}
这是查询
try {
let u = await user.find({ code: id }).lean();
return u;
} catch(err) {
handleErrors(req, res, err) //You will get error here
}
您可以查看here了解更多