Bluebird NPM:Bluebird JS Promise 示例

什么是 Bluebird JS?

Bluebird JS 是一个功能齐全的 Promise 库,适用于 Java脚本。Bluebird 最强大的功能是它允许您“promisify”其他 Node 模块以便异步使用它们。Promisify 是一个应用于回调函数的概念。此概念用于确保每个被调用的回调函数都返回一些值。

所以如果 的NodeJS 模块包含一个不返回值的回调函数,如果我们将节点模块 Promisify,则该特定节点模块中的所有函数将自动被修改以确保它返回一个值。

因此,您可以使用 BlueBird 来制作 MongoDB 模块异步运行。这在编写 Node.js 应用程序时又增加了一层便利性。

我们将看一个如何使用 bluebird 模块的例子。

我们的示例将首先与“EmployeeDB”数据库中的“Employee 集合”建立连接。如果“则”连接建立,它将获取集合中的所有记录并相应地将其显示在控制台中。

如何使用 Bluebird JS 库生成承诺

以下是分步示例 产生承诺 使用 Bluebird JS 库:

步骤 1)安装 NPM 模块

要在 Node 应用程序中使用 Bluebird,需要 Bluebird 模块。要安装 Bluebird 模块,请运行以下命令

npm 安装 bluebird

步骤 2)包含 Bluebird 模块

下一步是将 bluebird 模块包含在你的代码中,并承诺整个 MongoDB 模块。promisify 的意思是 bluebird 将确保模块中定义的每个方法 MongoDB 图书馆返回一个承诺。

使用 Bluebird JS 库生成承诺

代码说明:-

  1. require 命令用于包含 Bluebird 库。
  2. 使用 Bluebird 的 .promisifyAll() 方法为每个方法创建异步版本 MongoDB 模块提供。这确保了 MongoDB 模块将在后台运行,并确保为每个方法调用返回一个承诺。 MongoDB 图书馆。

步骤 3)连接到数据库

最后一步是连接到我们的数据库,检索我们集合中的所有记录并将它们显示在我们的控制台日志中。

使用 Bluebird JS 库生成承诺

代码说明:-

  1. 你会注意到,我们使用“connectAsync”方法,而不是正常的连接方法来连接到 数据库。Bluebird 实际上将 Async 关键字添加到 MongoDB 库来区分返回承诺的调用和不返回承诺的调用。因此,不带 Async 字样的方法无法保证会返回值。
  2. 与 connectAsync 方法类似,我们现在使用 findAsync 方法返回 mongoDB“Employee”集合中的所有记录。
  3. 最后,如果 findAsync 返回成功的承诺,那么我们将定义一个代码块来遍历集合中的每个记录并将它们显示在控制台日志中。

如果上述步骤正确执行,Employee 集合中的所有文档将显示在控制台中,如下面的输出所示。

使用 Bluebird JS 库生成承诺

以下是供您参考的代码:

var Promise = require('bluebird');

var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;

var url = 'mongodb://localhost/EmployeeDB';
mongoClient.connectAsync('mongodb://localhost/EmployeeDB')

.then(function(db) {
        return db.collection('Employee').findAsync({})

    })
    .then(function(cursor) {
        cursor.each(function(err, doc) {
            console.log(doc);
        })
    });