Как динамически подключаться к базе данных вnesjs?

У меня есть несколько баз данных, которые я хочу подключить. но только один из них имеет статическое имя. например, имя этой базы данных stores, и в ней у меня есть таблица, в которой указаны имена других баз данных. теперь я хочу изменить поставщика подключения после вызова первого маршрута. Как мне это сделать?

Я пытался использовать динамические модули, но я не знаю, как их использовать.


person RezaT1994    schedule 07.10.2020    source источник
comment
Создайте свой собственный модуль базы данных и передайте имя базы данных поставщику или uri, с которым вы хотите подключиться, сохраните где-нибудь эту информацию с отношениями к соединению, например, строка → соединение, fe: карта с URI БД или имя БД с ключом как обработчик соединения. Тогда вы должны быть в состоянии достичь своей цели.   -  person cojack    schedule 09.10.2020
comment
@cojack, спасибо. но можете ли вы привести пример того, как это сделать?   -  person RezaT1994    schedule 10.10.2020


Ответы (1)


@Injectable({ scope: Scope.REQUEST })
export class MongooseConfigService implements MongooseOptionsFactory {
    constructor(
        @Inject(REQUEST) private readonly request: Request,) {
    }

    createMongooseOptions(): MongooseModuleOptions {
        return {
            uri: request.params.uri, // Change this to whatever you want
        };
    }
}

Вы можете узнать больше об областях внедрения.

И можете увидеть ту же проблему здесь

person Ashok    schedule 17.10.2020