是否仍然需要宣传MongoDB驱动程序?

pet*_*ter 6 mongodb node.js promise bluebird

这个问题的答案是否仍然相关:如何使用bluebird宣传MongoDB本机Javascript驱动程序?

我不知道从什么时候开始更新,但是MongoDB的2.0 JS驱动程序在options对象中有一个属性promiseLibrary:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

并且大多数方法/函数确实返回了一个承诺,例如Cursor.toArray().

但是,我找不到使用这个新选项的示例,但使用时不会更简单:

MongoClient.connect('mongodb://URL', { promiseLibrary: require('bluebird') });
Run Code Online (Sandbox Code Playgroud)

或者这个定义是错的? - 在哪种情况下,应该如何正确定义?

更新:

代码在io.js上运行,所以我甚至可能不需要指定一个promiseLibrary驱动程序将使用ES6承诺? - 但是,据说蓝鸟的承诺比较慢:

为什么原生ES6比蓝鸟承诺更慢,内存更密集?

Update2: 我添加了bluebird标签 - 如果promisifying真的比使用MongoDB自己的实现更好的话,也许在bluebird上工作的人可以提供更多细节吗?

Ben*_*aum 1

是否还需要承诺 MongoDB 驱动程序?

不,他们现在内置了对 bluebird 等 Promise 库的支持。我认为我们应该以不同的方式问这个问题:

承诺 MongoDB 驱动程序是个好主意吗?

也许,bluebird 在将回调 API 转换为 Promise 方面比 Mongo 驱动程序在内部做得更好,包装更轻。仍然承诺“在前几天”可能会更快。

  • 个人很想看到差异的例子。抽出 5 分钟时间分享一下? (5认同)