2013-07-17 69 views
0

我想爲NodeJS創建一個連接到MongoDB的模塊。我已經看到,更好的新方法是使用MongoClient,但我無法知道如何在數據庫上進行併發操作。我想達到的目標是有功能的,以抽象的數據庫,如下所示:使用Node.js的MongoClient多重連接

exports.insertItem(item){ 

    //Whatever 

} 

根據該文件,我應該這樣連接到數據庫:

MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) { 

    //Do stuff on the db object 

}); 

的問題是我應該如何重用db對象,如果它不在我可以用於在節點中導出函數的作用域中?我應該在每個處理數據庫的函數上做一個MongoClient.connect()?

+1

可能重複http://stackoverflow.com/questions/17647779/how-to-reuse-mongodb -connection-在節點-JS) – moka

回答

0

你讓一個單一的數據庫連接和重用它無處不

爲模塊的典型模式是

export.myinsert = function(db) { 
    return function(whatever) { 
    } 
} 

,然後做

require('mymodule')(db) 

有一個看一個例子

https://github.com/christkv/tic-tac-toe-steps

0

這裏是我用來展示整體概念的一些代碼的簡化版本...希望這可以幫助您開始。

var mongodb = require('mongodb'), 
    MongoClient = mongodb.MongoClient; 

var db; 

// Initialize our connection to MongoDB once 
MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database){ 
    if(err){ 
     console.log('MongoClient connect failed'); 
     console.log(err); 
    } 

    db = database; 
}); 

exports.Connect = function (callback) { 
    callback(db); 
}; 

exports.MongoClient = MongoClient; 
exports.ObjectID = mongodb.ObjectID; 

要使用它

var Connect = require('myMongo').Connect; 
Connect(function(db){ 
    // then use your db.collection() stuff here 
}) 
的[如何重複使用Node.js的MongoDB的連接(