Модуль функциональности в Nest
Пусть страница списка и класс с её данными лежат в корневом модуле рядом с классами других тем. Файл корня растёт, хотя у списка своя тема и свой адрес.
Модуль функциональности собирает
одну тему в одном классе. Его помечают
декоратором Module. В списке
controllers стоят контроллеры
темы, в списке providers -
её сервисы. Корневой модуль при этом
остаётся отдельным файлом. Адреса темы
откроются, когда корень подключит
этот класс.
Покажем на примере постов. Сервис отдаёт список:
import { Injectable } from '@nestjs/common';
@Injectable()
export class PostService {
getPosts(): string {
return 'All posts';
}
}
Контроллер открывает этот список по префиксу темы:
import { Controller, Get } from '@nestjs/common';
import { PostService } from './post.service.js';
@Controller('posts')
export class PostController {
constructor(private postService: PostService) {}
@Get()
getPosts(): string {
return this.postService.getPosts();
}
}
Оба класса запишем в модуль постов:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
import { PostService } from './post.service.js';
@Module({
controllers: [PostController],
providers: [PostService],
})
export class PostsModule {}
Создайте модуль WorkersModule
и поместите в него контроллер
WorkerController и сервис
WorkerService.