3

メインファイル自体でMongoDB接続を開いてapp.jsおり、次のコードがコールバックに含まれていると考えてください。

mongodb.connect('MongoDBUrlGoesHere', function (err, db) {
   app.listen(app.get('port'), function AppListnCB() {
       console.log("Server listening on port " + app.get('port'));
   });
});

これはすべて、アプリケーション全体で db インスタンスを 1 つだけにするために行われます。

ここで、別のexternal.jsファイルにいて、dbすでに接続されている同じオブジェクトが必要な場合。これは、モンゴスキンまたはマングースを使用している場合、非常に簡単に実行できます。

ネイティブドライバーでこれを行う方法を見つけるのを手伝ってくれる人はいますか?

4

1 に答える 1

4

次のようなラッパー、つまり db インスタンスを格納する新しいモジュールを作成できます。

//db.js
var HOSTNAME = ...
var PORT = ...

var db = module.exports = {};
var instance;

db.connect = function (){
    ...
    instance = <db_instance>;
};

db.disconnect = function (){
    ...
    instance = null;
};

db.instance = function (){
    return instance;
};

これで、db インスタンスが必要になるたびに、次のようにして取得します。

var db = require ("./path/to/db");
db.instance ();
于 2013-06-22T10:51:13.410 に答える