Журнал в сервисе в Nest
Контроллер открывает адрес и отдаёт ответ, а правила списка могут жить в сервисе. Если журнал оставить только в контроллере, внутренние шаги сервиса останутся невидимыми.
Класс журнала создают в сервисе рядом с данными. Метод списка пишет служебную строку перед возвратом результата, а контроллер лишь вызывает операцию сервиса и передаёт ответ клиенту.
Покажем на примере постов:
import { Injectable, Logger } from '@nestjs/common';
@Injectable()
export class PostService {
private logger = new Logger(PostService.name);
getPosts(): string {
this.logger.log('Listing posts');
return 'All posts';
}
}
Контроллер запросит список у сервиса и вернёт результат клиенту:
import { Controller, Get } from '@nestjs/common';
import { PostService } from './post.service.js';
@Controller()
export class PostController {
constructor(private postService: PostService) {}
@Get('posts')
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 AppModule {}
Сделайте страницу списка работников
в контроллере WorkerController,
которая берёт данные из сервиса
WorkerService со служебной
записью в журнале, и подключите оба
класса к корневому модулю.