2016-09-21 2 views
0

Есть ли какой-нибудь способ, которым я мог бы вернуть обещание от createConnection, так что я не должен использовать слушателейMongoose CreateConnection обещают

Я использую Bluebird обещаний.

Я хотел бы использовать .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.promisifyВсе некоторый API и начинаются исключительно с обещаний, возвращающих версии методов API.

В частности:

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

Надеется, что это помогает!

EDIT:

Обратите внимание, что это возможно, так как 4.4.0 (changelog)

Кроме того, внутренняя библиотека обещание установить мангуст на использование Bluebird так: mongoose.Promise = require('bluebird');

EDIT 2:

Обратите также внимание, что вы должны использовать mongoose.connect()cf

Смежные вопросы