2016-07-18 61 views
0

我試圖讓MongoDB Native DriverKontainer-di一起使用。我想將連接的客戶端(從connect方法返回)添加到容器,以便我可以直接將它注入到控制器/服務中。Kontainer-di with Mongo Native

有一個選項可以使用start函數返回一個我認爲可以與mongo原生連接函數一起工作的承諾。數據庫連接在then內。我的問題是,我不知道我如何訪問連接的數據庫客戶端將會話添加到容器。

到目前爲止我的代碼看起來像:

var mongoClient = require('mongodb').MongoClient; 
var promise = require('bluebird'); 

var mongoFactory = function(config) { 

    function start() { 
     return mongoClient.connect("mongodb://127.0.0.1:27017/test", {promiseLibrary: promise}) 
      .then(function(database) { 
       console.log('mongo connection initialised'); 
      }) 
      .catch(function(err) { 
       console.error('Error: ', err); 
      }); 
    } 

    function stop() { 
     db.close(); 
    } 

    return { 
     start: start, 
     stop: stop 
    } 

} 

module.exports = mongoFactory; 

回答

0

萬一別人有同樣的問題,因爲我。我結束了與mongojs庫,而不使用承諾的連接,所以活動連接可以很容易地添加到容器。

我仍然希望使用承諾而不是回調查詢,所以我使用藍鳥和它的promisifyAll方法。

相關問題