【发布时间】:2018-10-12 04:26:31
【问题描述】:
我想根据Redis 配置连接到不同的数据库(MongoDB)。所以我必须阅读redis数据库并且必须建立数据库连接(MongoDb)。还必须确保它的单例。
我试过的是
dbConenction.js:
var MongoClient = require('mongodb').MongoClient;
var db;
var connectDatabase = function connectDatabase(url) {
if (!db) {
//var connectionString = "mongodb://"+userName + ":" + password + "@" + host+ "27017/" +db;
console.log(url);
//db = mysql.createConnection(settings);
//MongoClient.connect(connectionString)
MongoClient.connect(url, function(err, db){
if(!err) {
console.log("ddddddddd");
console.log(db);
console.log('Database is connected!');
db = db;
} else {
console.log('Error connecting database!');
}
});
}
}
module.exports.connectDatabase = connectDatabase;
module.exports.db = db;
在 app.js 中:
var url = "mongodb://127.0.0.1:27017/pal";-----> this need to be read from Redis Database.
global.db = require('./db/dbConnection').connectDatabase(url)
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var configureRouter = require('./routes/configure');
var validationRouter = require('./routes/datavalidations');
在我的 routes.js 中
我打印了以下内容
console.log("db");
console.log(db);
它的Undefined 我知道这是因为在连接到数据库之前,路由已加载(异步)。所以请建议我如何构建它以便它的单例。提前致谢。
【问题讨论】:
-
db = db; - 有点混乱,尝试为内部数据库使用不同的名称 - 即 connectedDb。
-
@Alex 谢谢。知道我该如何构建这个吗??
-
路由如何获取DB连接?
标签: javascript node.js dbconnection