承诺,返回值Node.js

时间:2018-07-09 10:40:17

标签: javascript node.js mongodb

最近我一直在想,

我当前正在为项目使用MongoDB,并且每当连接到数据库时,我都会使用Mongoclient.connect()。 该函数有一个回调,因此我假设它也返回一个Promise。

我现在的问题是,在我的回调中(因此,在连接到数据库之后),我查询了一些数据,我想在函数返回时返回该数据,但是显然这不起作用,因为Node异步工作并且返回的值将是不确定的。

我已经看到一些函数,因为我认为文件系统模块可以调用同步函数,因此实际上您可以等待该函数完成,然后获取返回值。我本人将如何实现这样的目标?还是有一种更简单的方法来返回我的查询?

非常感谢您的任何答复

  module.exports.findCategoryKeywords = (categories) => {
/* Connect to database */
MongoClient.connect(uri, (err, client) => {
  if (err) {console.log(err)}
  else {
    // Access swarm
    let db = client.db("Swarm");

    // Go into the keywords collection
    let keywords = db.collection("keywords_by_category");

    /* Push all the database requests onto cursors */
    let cursors = new Array();
    for (let i = 0; i < categories.length; i++) {
      cursors.push(keywords.find({"category" : categories[i]}).toArray());
    }
    return cursors;
  }
});

}

游标是我想要返回的。

0 个答案:

没有答案