Динамическое подключение базы данных к mongodb или mongoose из nodejs
Я пытаюсь создать мультитенантное приложение (saas), где у каждого клиента есть своя база данных.
Моя ситуация такова:
Я создал промежуточное программное обеспечение, которое будет определять, какой клиент основан на поддомене, а затем извлекать информацию о соединении базы данных клиента из общей базы данных. Я не знаю, как установить объект подключения для этого клиента, чтобы иметь возможность использовать его в моих контроллерах. И я должен сделать это в промежуточном программном обеспечении или в контроллере? И если это в модели, как мне передать строку подключения и параметры (я мог бы использовать сеанс, но я не знаю, как получить доступ к сеансу из модели).
Как мне сделать следующее?
Организация: где я могу динамически создать соединение БД для клиента?Внедрить / передать параметры подключения к контроллеру или модели (где определено подключение)После того, как было установлено динамическое соединение, как я могу получить к нему глобальный доступ для этого клиента?Это пример моего промежуточного программного обеспечения, и я хотел бы создать соединение mongoose, которое я хотел бы сделать динамическим (передать информацию о соединении клиента):
function clientlistener() {
return function (req, res, next) {
console.dir('look at my sub domain ' + req.subdomains[0]);
// console.log(req.session.Client.name);
if (req.session.Client && req.session.Client.name === req.subdomains[0]) {
var options = session.Client.options;
var url = session.Client.url
var conn = mongoose.createConnection(url, options);
next();
}
}
}
Как мне получить доступ к этому объекту соединения изнутри контроллера? Или из модели?
Спасибо.