Несколько модулей в Nest
Пусть у сайта две темы, и обе записаны в корневой модуль. Списки контроллеров смешиваются, хотя адреса у тем разные и правила страниц тоже.
Каждую тему собирают в свой модуль.
Корень импортирует их рядом, одним
списком imports. У каждого
модуля свой контроллер и свой префикс.
Общих провайдеров у них нет: одна тема
не заглядывает в классы другой.
Покажем на примере постов и черновиков. Контроллер постов:
import { Controller, Get } from '@nestjs/common';
@Controller('posts')
export class PostController {
@Get()
getPosts(): string {
return 'All posts';
}
}
Модуль постов держит этот контроллер:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class PostsModule {}
Контроллер черновиков:
import { Controller, Get } from '@nestjs/common';
@Controller('drafts')
export class DraftController {
@Get()
getDrafts(): string {
return 'All drafts';
}
}
Модуль черновиков:
import { Module } from '@nestjs/common';
import { DraftController } from './draft.controller.js';
@Module({
controllers: [DraftController],
})
export class DraftsModule {}
Корень импортирует оба модуля:
import { Module } from '@nestjs/common';
import { DraftsModule } from './drafts/drafts.module.js';
import { PostsModule } from './posts/posts.module.js';
@Module({
imports: [PostsModule, DraftsModule],
})
export class AppModule {}
Сделайте страницу работников
в контроллере WorkerController
модуля WorkersModule и страницу
архива в контроллере
ArchiveController модуля
ArchiveModule. Оба модуля
подключите к корневому.