0

NodeJS が MongoDB に接続するためのモジュールを作成したいと考えています。新しいより良いアプローチは MongoClient を使用することであることがわかりましたが、データベースで同時操作を行う方法を知ることができません。私が達成したい目標は、次のようなデータベースを抽象化する関数を持つことです。

exports.insertItem(item){

     //Whatever

}

ドキュメントによると、次の方法でデータベースに接続することになっています。

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

  //Do stuff on the db object

});

問題は、ノードで関数をエクスポートするために使用できるスコープ内にない場合、db オブジェクトを再利用する方法です。DB を扱うすべての関数で MongoClient.connect() を作成する必要がありますか?

4

2 に答える 2

0

単一のデータベース接続を作成し、どこでも再利用します

モジュールの典型的なパターンは

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

そして、する

require('mymodule')(db)

例を見てみましょう

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

于 2013-08-12T12:10:54.943 に答える
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
})
于 2015-11-02T15:45:09.280 に答える