此问题的答案是否仍然相关:How can I promisify the MongoDB native Javascript driver using bluebird?
我不知道从什么时候开始更新,但MongoDB的2.0 JS驱动程序在选项对象promiseLibrary
中有一个属性:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html
大多数方法/函数都会返回一个promise,例如Cursor.toArray()
。
但是,我无法使用这个新选项找到一个示例,但使用它不会更简单:
MongoClient.connect('mongodb://URL', { promiseLibrary: require('bluebird') });
或者这个定义是错的? - 在哪种情况下,应该如何正确定义?
更新
代码在io.js上运行,所以我甚至可能不需要指定promiseLibrary
,因为驱动程序会使用ES6承诺? - 但是,据说蓝鸟承诺的速度较慢:
Why are native ES6 promises slower and more memory-intensive than bluebird?
UPDATE2: 我已经添加了bluebird标签 - 如果promisifying真的比使用MongoDB自己的实现更好,那么从事bluebird工作的人可以提供更多细节吗?
答案 0 :(得分:1)
是否仍然需要宣传MongoDB驱动程序?
不,他们现在已经建立了对像bluebird这样的承诺库的支持。我认为我们应该以不同的方式提出这个问题:
宣传MongoDB驱动程序是个好主意吗?
或许,bluebird在将回调API转换为承诺方面比Mongo驱动程序在内部通过更轻松地包装更好。如果“在前几天”仍然可以更快地宣传它。