【发布时间】:2016-10-11 23:29:05
【问题描述】:
我正在尝试与我的 MongoDB 建立单一连接并将我返回的响应(数据库)存储在一个全局变量中,因此我可以在单独的 JS 文件中重新使用它(就像我的路由的单独文件一样) .我以这个文档为例:https://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html#mongoclient-connection-pooling.
第一次尝试: var mongodb = require('mongodb'), MongoClient = mongodb.MongoClient, MongoURL = "my_mongodb_url:port/database_name", 全局.db;
MongoClient.connect(MongoURL, function(err, database) {
db = databse;
console.log(db); // shows stuff
}
console.log(global.db); // shows undefined
经过一番研究,我找到了解决问题的可能方法:在 Node 中创建一个带有全局前缀的全局变量。但是还是不行……
第二次尝试:
var mongodb = require('mongodb'),
MongoClient = mongodb.MongoClient,
MongoURL = "my_mongodb_url:port/database_name",
global.db;
MongoClient.connect(MongoURL, function(err, database) {
global.db = databse;
console.log(db); // shows stuff
}
console.log(global.db); // shows undefined
上面的代码都放在同一个文件 [app.js] 中。我认为这与 MongoClient 的范围有关。但我不确定。有没有办法让这个工作?
【问题讨论】:
标签: javascript node.js mongodb global var