我使用以下代码连接到main.js中的数据库:
var MongoClient = require('mongodb').MongoClient;
var db;
MongoClient.connect(process.env.PROD_MONGODB, function(err, database) {
if(err) { return console.dir(err); }
db = database;
});
稍后在文件中我可以这样做:
db.collection('players').update({id: player.id}, {$set: {x: player.x, y: player.y}}, function(err, result) {
console.log(err, result);
});
现在我想在另一个文件中进行类似的数据库更新,但无法弄清楚如何导出连接。
我已尝试 exports.db = db 并要求 var db = require(' ./ main')。db 但它在另一个文件中最终未定义。
我该怎么做?
答案 0 :(得分:1)
这是尝试在完成之前使用异步操作的结果的典型问题。
不是尝试导出LOAD CSV
连接并使其无限期打开,而是导出一个创建连接的函数并允许您使用它:
db
然后你可以像这样使用它:
exports.useDb = function (f) {
MongoClient.connect(process.env.PROD_MONGODB, function(err, database) {
try {
f(err, database);
} finally {
database.close();
}
});
};