异步等待中的错误处理
Error handling in async await
如何为 Mongoose(当前版本 v5.1.5)实现错误处理?
例如,假设以下代码正在查找用户详细信息。
let u = await user.find({ code: id }).lean();
return u;
并且出现了一些错误,应该如何处理?
其次,我们能否拥有集中的错误处理功能,只要任何 Mongoose 代码中发生错误,它就会被触发,它会被定向到项目中可以处理它的特定功能。
您将在 .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了解更多
这里是 Mongoose 维护者。第一个问题已经正确回答。回复:"Secondly, can we have centralised error handling function which will get triggered whenever an error happens in any of the Mongoose code, it gets directed to a particular function in the project where it can be handled.",试试这个:
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' }));
}
上的 post 博客
如何为 Mongoose(当前版本 v5.1.5)实现错误处理?
例如,假设以下代码正在查找用户详细信息。
let u = await user.find({ code: id }).lean();
return u;
并且出现了一些错误,应该如何处理?
其次,我们能否拥有集中的错误处理功能,只要任何 Mongoose 代码中发生错误,它就会被触发,它会被定向到项目中可以处理它的特定功能。
您将在 .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了解更多
这里是 Mongoose 维护者。第一个问题已经正确回答。回复:"Secondly, can we have centralised error handling function which will get triggered whenever an error happens in any of the Mongoose code, it gets directed to a particular function in the project where it can be handled.",试试这个:
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' }));
}
上的 post 博客