我正在使用猫鼬+ Express构建一个简单的MERN应用。
我需要创建多个文档并保存它们,但是我需要捕获所有错误。 我正在使用此代码并且可以正常工作,但是我想一次处理所有错误,而不是重复多次相同的代码。
如果我使用try ... catch块并删除回调错误处理程序,则会获得UnhandledPromiseRejectionWarning。
model.save((err, doc) => {
if (err) return console.error(`ERR ${err.message}`);
});
我已经尝试过了:
export const init = async () => {
try {
const newDoc = new MyModel({ test: 'test'});
const savedDoc = await newDoc.save();
console.log('All done :)');
} catch (err) {
console.log('Error');
res.status(400).send(err);
}
}
但是我无法捕捉到错误:在调试模式下,程序永远不会进入catch块,并且在出现错误的情况下我会获取错误信息,例如: UnhandledPromiseRejectionWarning:MongoError:E11000重复键错误收集
有什么建议吗?
答案 0 :(得分:0)
try{
const savedModel = await model.save();
console.log("Model created successfully");
res.status(200).send("Model created successfully");
}catch (err){
console.log(err);
res.status(400).send(err);
}
答案 1 :(得分:0)
square(1)