2016-09-21 67 views
0

有没有一些方法,我可以从createConnection返回一个承诺,所以我没有使用我使用蓝鸟的承诺听众猫鼬的createConnection承诺

我想使用.then().catch()而不是听众.on('error', callback).on('open', callback)

这是我如何初始化连接

_initConnection(connectionSettings){ 
    Mongoose.Promise = Bluebird; 
    this.connection = Mongoose.createConnection(connectionSettings); 
} 
+0

嗨,你能提供更多的代码,你当前的createConnection。是因为你连接到几个mongodb服务器? – vdj4y

+0

@ vdj4y我已更新问题 – Stevik

+0

@Stevik:基于[mongoose文档](http://mongoosejs.com/docs/promises.html),'Promise'仅用于查询。我想是这样 – tmquang6805

回答

0

检查出promisification页面。从文档:

Promisification意味着将现有的承诺未知API转换为承诺返回API。

在节点中使用promise的常用方法是Promise.promisifyAll一些API并开始专门调用promise方法返回APIs方法的版本。

具体做法是:

var Promise = require("bluebird"); Promise.promisifyAll(require("mongoose"));

希望这有助于!

编辑:

注意,这可能因为4.4.0(changelog

此外,设置猫鼬的内部承诺库使用蓝鸟像这样: mongoose.Promise = require('bluebird');

编辑2:

还请注意,您必须使用mongoose.connect()cf