愚蠢的问题......我正在使用Node.js中的API工作(即学习),并使用下面的代码连接到MongoDB。当数据库代码位于我的routes.js文件中时,一切都很好,但我真的想将该代码块移到单独的dbconfig.js文件/模块中。
我已经尝试了我能找到的每个方法,但是在我的getQuery函数中调用时,db变量/对象总是返回undefined。任何指导都将非常感谢!!!
dbconfig.js
module.exports=function() {
var db;
var mongoClient = require('mongodb').MongoClient;
var mongoUrl = 'mongodb://username:password@ds123456.mongolab.com:123456/mydb';
var mongoOptions = {
server: {auto_reconnect: true}
};
getDb();
return {
db: this.db
};
function getDb() {
mongoClient.connect(mongoUrl, mongoOptions, function(error, database) {
if (error) {
console.log(error)
} else {
db = database;
}
});
}
};
routes.js (相关部分)
(function(routes) {
var dbconfig = require('.\dbconfig')();
var breezeMongo = require('breeze-mongodb');
var db = dbconfig.db;
function getQuery(request, result, next) {
try {
var resource = request.params.resource;
var collectionName = getCollectionName(resource);
var query = new breezeMongo.MongoQuery(request.query);
query.execute(db, collectionName, processResults(result, next));
} catch (ex) {
var err = {
statusCode: 404,
message: 'Unable to execute query " ' + request.url + '"',
error: ex
};
}
}
})(module.exports);