如何从node-mongo本机驱动程序获取db实例?

时间:2013-06-22 08:44:16

标签: node.js mongodb mongoose node-mongodb-native mongoskin

考虑一下,我在主app.js文件本身中打开了MongoDB连接,下面的代码就在它的回调中:

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

这样做是为了在整个应用程序中只有一个数据库实例。

现在,如果我们在另一个external.js文件中并且需要一个相同的db对象已经连接了。如果我们使用mongoskinmongoose

,这可以非常轻松地完成

有人可以帮助我找到如何使用本机驱动程序完成此操作吗?

1 个答案:

答案 0 :(得分:4)

您可以编写一个包装器,一个存储数据库实例的新模块,类似于:

//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 ();