考虑一下,我在主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
对象已经连接了。如果我们使用mongoskin或mongoose
有人可以帮助我找到如何使用本机驱动程序完成此操作吗?
答案 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 ();