猫鼬和多次保存错误处理

时间:2020-09-10 14:19:32

标签: javascript mongoose error-handling

我正在使用猫鼬+ 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重复键错误收集

有什么建议吗?

2 个答案:

答案 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)