Mongoose createConnection承诺

问题描述 投票:0回答:3

有什么方法可以从createConnection返回一个承诺,所以我不必使用听众

我正在使用Bluebird作承诺。

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

这是我初始化连接的方式

_initConnection(connectionSettings){
    Mongoose.Promise = Bluebird;
    this.connection = Mongoose.createConnection(connectionSettings);
}
node.js mongoose bluebird
3个回答
0
投票

查看promisification页面。来自文档:

Promisification意味着将现有的promise-unaware API转换为promise-returns 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


0
投票

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


0
投票

Mongoose 5支持createConnection方法的承诺,但有一些警告。

至于mongoose.createConnection(),mongoose仍然支持使用mongoose.createConnection()的返回值作为承诺或连接。

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

有关警告,请查看文章。

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

© www.soinside.com 2019 - 2024. All rights reserved.