Mongoose createConnection承诺

时间:2016-09-21 18:41:02

标签: node.js mongoose bluebird

我是否有某种方式可以从createConnection返回承诺,因此我不必使用听众

我使用Bluebird作承诺。

我想使用.then().catch()代替听众.on('error', callback).on('open', callback)

这是我初始化连接的方式

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

3 个答案:

答案 0 :(得分:0)

查看promisification上的页面。来自文档:

Promisification意味着将现有的promise-unaware API转换为承诺返回API。

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

具体做法是:

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

希望这有帮助!

编辑:

请注意,这可能是自4.4.0(changelog

以来

另外,设置mongoose的内部promise库以使用bluebird,如下所示: mongoose.Promise = require('bluebird');

编辑2:

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

答案 1 :(得分:0)

Mongoose.connect返回一个承诺。沿着这些方向,最近还有一个可能有用的npm包:mongoose-connection-promise

答案 2 :(得分:0)

猫鼬5支持createConnection方法上的诺言,但有一些警告。

  

对于mongoose.createConnection(),猫鼬仍然支持将mongoose.createConnection()的返回值用作承诺或连接。

// Works
mongoose.createConnection().then(conn => conn.model('Test', schema));

有关警告,请查看文章。

来源:https://thecodebarbarian.com/whats-new-in-mongoose-5-improved-connections