3

考虑一下,我在主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 ,这可以很容易地完成

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

4

1 回答 1

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;
};

现在,每次您需要数据库实例时,通过执行以下操作检索它:

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