Список в сервисе в Nest
Пусть на сайте несколько записей, а метод умеет отдать только одну готовую фразу. Клиенту нужен сам список, а не общая фраза вместо него.
Массив объектов держат в поле сервиса. Операция списка возвращает этот массив целиком, а контроллер лишь передаёт ответ дальше без своей копии данных.
Покажем на примере постов. Заполним сервис двумя записями и операцией списка:
import { Injectable } from '@nestjs/common';
@Injectable()
export class PostService {
private posts = [
{
title: 'Morning note',
text: 'A short text',
},
{
title: 'Evening note',
text: 'Another text',
},
];
getPosts() {
return this.posts;
}
}
Маршрут списка вернёт массив из сервиса:
import { Controller, Get } from '@nestjs/common';
import { PostService } from './post.service.js';
@Controller()
export class PostController {
constructor(private postService: PostService) {}
@Get('posts')
getPosts() {
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 {}
Храните в сервисе WorkerService
список из нескольких работников и отдайте
его из контроллера WorkerController.
Оба класса подключите к корневому модулю.