РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpDmET 18 of 201 menu
◀ ▶

Экспорт из динамического модуля в Nest

Пусть сводка по сайту живёт в отдельном модуле, а имя папки записей задаёт модуль темы. Без экспорта токена сосед не увидит значение в своих провайдерах и контроллерах.

Список exports в объекте настройки работает так же, как у обычного @Module: импортировавший модуль может внедрить строковый токен, если он перечислен в exports. Достаточно подключить результат настройки в imports соседа.

Покажем на примере постов. Модуль сводки импортирует настроенную тему:

import { Module } from '@nestjs/common'; import { PostsModule } from '../posts/posts.module.js'; import { StatsController } from './stats.controller.js'; @Module({ imports: [PostsModule.register({ folder: 'posts' })], controllers: [StatsController], }) export class StatsModule {}

Контроллер сводки запросит тот же токен и вернёт строку:

import { Controller, Get, Inject } from '@nestjs/common'; @Controller('stats') export class StatsController { folder: string; constructor(@Inject('FOLDER') folder: string) { this.folder = folder; } @Get() getFolder(): string { return this.folder; } }

Корень подключит только модуль сводки - тема приедет вместе с ним:

import { Module } from '@nestjs/common'; import { StatsModule } from './stats/stats.module.js'; @Module({ imports: [StatsModule], }) export class AppModule {}

Откройте токен каталога из настроенного WorkersModule модулю отчёта и верните строку из ReportController.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить