我正在尝试连接到 MongoDB 并将我得到的响应(数据库)存储在全局变量中,以便在分离的 JS 文件中重新使用它(例如我的路由文件)。我正在按照此文档进行操作:https://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html#mongoclient-connection-pooling。
第一次尝试:
var mongodb = require('mongodb'), MongoClient = mongodb.MongoClient, MongoURL = "我的_mongodb_url:端口/数据库名称", global.db;
第一次尝试:
var mongodb = require('mongodb'), MongoClient = mongodb.MongoClient, MongoURL = "我的_mongodb_url:端口/数据库名称", global.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的作用域有关,但我不确定。有没有办法让它工作?