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

Данные в сервисе в Nest

Представим, что страница одной записи каждый раз собирает её поля прямо в методе контроллера. Данные размазаны по маршруту, хотя карточка на каждый запрос одна и та же.

Данные удобнее держать в сервисе как поле класса. Метод контроллера только запрашивает готовый объект и отдаёт его клиенту без повторного копирования строк.

Покажем на примере поста. Зададим в сервисе одну карточку и операцию, которая её возвращает:

import { Injectable } from '@nestjs/common'; @Injectable() export class PostService { private post = { title: 'Morning note', text: 'A short text', }; getPost() { return this.post; } }

Контроллер откроет адрес одного поста и вернёт объект из сервиса:

import { Controller, Get } from '@nestjs/common'; import { PostService } from './post.service.js'; @Controller() export class PostController { constructor(private postService: PostService) {} @Get('post') getPost() { return this.postService.getPost(); } }

Подключим оба класса в корневом модуле:

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. Оба класса подключите к корневому модулю.

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