为什么猫鼬的.find({})方法根本不起作用?

时间:2019-06-14 22:33:43

标签: javascript express mongoose

问题:

我有一个带有猫鼬模型的基本快递服务器。

我将api称为“ / api / forums / all”,它应该使我从“论坛”模型中获得所有论坛文档。

当我叫它时,它什么都不做。

这是我的论坛路线本身:

router.get('/all', (req, res) => {
  // Populating all field we need in the frontend
  // We need: All the forums, with all subForums
  // and for each subForum we need it's posts and last poast

  console.log('trying..');
  const all = await Forum.find({}, (err, forum) => {
    console.log('still trying');
  });

  // .populate({
  //   path: 'subForums',
  //   populate: [{ path: 'lastPost' }, { path: 'posts' }]
  // });

  return res.json(all);
});

这是我尝试访问此路线时打印的内容:

  

尝试..

因此“仍在尝试”不会运行。

我尝试过什么:

我将函数更改为如下形式(在(req, res)之前加上asyinc:

try {
    console.log('trying..');
    const all = await Forum.find({})

    console.log('still trying');

    // .populate({
    //   path: 'subForums',
    //   populate: [{ path: 'lastPost' }, { path: 'posts' }]
    // });

    return res.json(all);
  } catch (err) {
    console.log('trying but error');
    return res.json(err);
  }

.exec()方法的末尾加上.find

但是“仍在尝试”不会运行。

与邮递员的get请求只是无限期地运行。

我真的不知道这是什么问题。

2 个答案:

答案 0 :(得分:0)

尝试一下。在数据库上搜索时,您需要先打开mongodb

MongoClient.connect('url of your database', function(err, db) {
const all = await Forum.find({}, (err, forum) => {
    console.log('still trying');
  });
})

答案 1 :(得分:0)

我发现了错误:

我正在导入一个种子文件,该文件为数据库提供种子,然后在完成后将其断开连接。

所以当我拨打任何路线时,猫鼬不再连接。