Я хочу подключиться к другой базе данных (MongoDB) на основе конфигурации Redis
. Поэтому я должен прочитать базу данных 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');
в моих маршрутах. Js
Я напечатал следующее
console.log("db");
console.log(db);
Это Undefined
Я знаю, это потому, что перед подключением к БД загружаются маршруты (асинхронные). Поэтому, пожалуйста, предложите мне, как я могу спроектировать это так, чтобы его синглтон. Заранее спасибо.