2016-09-21 106 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