You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在catch代码块中更新Mongoose模型?

是否可以在catch代码块中更新Mongoose模型的属性?

完全可以在catch代码块中更新Mongoose模型的属性并执行保存操作,这是很常见的错误处理场景——比如在核心操作失败时,标记模型状态为失败。

不过你提供的示例代码存在语法错误,需要修正:

  • 模型属性赋值(model.status = 'xxx')是同步的内存操作,不需要加await,await只能用于异步Promise操作;
  • 只有model.save()是异步方法,必须加await等待完成。

修正后的正确代码如下:

try {
  model.status = 'success';
  await model.save();
} catch(err) {
  model.status = 'failure';
  await model.save();
}

额外提醒两点:

  • 确保catch块中的model实例仍然有效,没有被意外销毁或修改;
  • 如果catch块里的save()也有失败风险,可以考虑嵌套一层try/catch来处理这个场景,避免报错被忽略。

内容的提问来源于stack exchange,提问作者justrying

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:41:39