How to get a instance of db from node-mongo native driver?

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-11 06:31:27

问题


Consider, I have MongoDB connection opened in the main app.js file itself and the following code fall in it's call back:

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

This is all done to have only one db instance across the application.

Now, If we are in another external.js file and need a same db object which is aleady has connected. This can be done very easily if we are using mongoskin or mongoose

Can someone help me to find how this can be done with native driver?


回答1:


You could write a wrapper, a new module where you store the db instance, something similar to this:

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

Now, every time you need the db instance retrieve it by doing:

var db = require ("./path/to/db");
db.instance ();


来源:https://stackoverflow.com/questions/17248900/how-to-get-a-instance-of-db-from-node-mongo-native-driver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!