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

Mongoose报错:Model.find()不再支持回调,求MongoDB数据查询方法

解决Model.find()不再支持回调的问题

你遇到的报错是因为Mongoose 6.x及以后版本移除了对回调函数的支持,Model.find()现在仅返回Promise,无法再传入回调参数。以下是两种正确的实现方式:

方式一:使用Promise的then/catch

router.get('/users', (req, res) => {
  User.find({})
    .then(data => {
      res.send(data);
    })
    .catch(err => {
      console.error(err);
      res.status(500).send('获取用户数据失败');
    });
});

方式二:使用async/await(更推荐)

router.get('/users', async (req, res) => {
  try {
    const data = await User.find({});
    res.send(data);
  } catch (err) {
    console.error(err);
    res.status(500).send('获取用户数据失败');
  }
});

注意事项:

  • 使用async/await时,必须给路由处理函数添加async关键字
  • 不要直接throw err,Express路由中未捕获的异常会导致服务器崩溃,需通过try/catch捕获并返回错误响应
  • 如果需要添加查询条件,直接将条件对象传入find()即可,例如User.find({ status: 'active' })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:52:49