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

Mongoose报错:Model.create()不再支持回调函数,如何改用async/await?

解决Mongoose Model.create() 不支持回调的问题:改用async/await实现

你遇到的错误是因为新版Mongoose已移除create()方法对回调函数的支持,必须改用Promise风格调用,async/await是最简洁的实现方式。

修改后的完整代码

app.post('/contactForm', async (req, res) => {
  try {
    // 用await等待create操作完成,获取创建后的文档
    const newContact = await Contact.create({
      name: req.body.name,
      phone: req.body.phone
    });
    console.log("*******", newContact);
    res.redirect('back');
  } catch (err) {
    // 捕获创建过程中的错误
    console.log(err, 'error in connecting');
    res.redirect('back');
  }
});

关键改动说明

  • 将Express路由的处理函数标记为async,这是使用await的前提
  • 用try/catch块替代原回调中的错误判断逻辑:try块执行正常创建流程,catch块捕获并处理错误
  • await会暂停函数执行,直到Contact.create()返回的Promise完成,直接拿到创建好的联系人文档
  • 错误处理部分可根据业务需求调整,比如返回500状态码或错误提示页面,这里保留了和原代码一致的页面跳转逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 06:27:36