Введение в динамические модули в Nest
Один и тот же класс модуля часто
нужен в разных местах приложения,
но с разными строками, ключами
или списками провайдеров. Жёстко
писать их в декораторе @Module
неудобно: настройку приходится
дублировать или править исходник.
Динамический модуль решает
эту задачу статическим методом
на классе модуля. Метод принимает
параметры и возвращает готовое
описание: тот же module,
списки providers,
exports и imports,
собранные под конкретный случай.
В корневой imports попадает
результат вызова, а не голый класс.
Так устроены знакомые из основного учебника подключения forRoot и forRootAsync у модуля базы и настроек. Там показывали готовый метод, здесь соберём такой же объект вручную на своём модуле темы, без генератора из документации.
Дальше настроим модуль строкой
папки, возьмём значение из
ConfigService, откроем токен
соседнему модулю и подключим
один класс дважды с разными
токенами, чтобы настройки
не смешивались.