如何从节点mongo本机驱动程序获得数据库的实例?
考虑一下,我在主app.js
文件中打开了MongoDB连接,下面的代码放在callbackapp.js
:
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
对象。 如果我们使用蒙古语或mongoose,这可以很容易地完成
有人可以帮助我find如何使用本地驱动程序可以做到这一点?
你可以编写一个包装器,一个存储数据库实例的新模块,类似于这个:
//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 ();