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

Готовое значение провайдера в Nest

Не всё, что нужно странице, удобно держать в методах сервиса. Иногда список уже известен при сборке модуля: его можно записать в провайдер как готовое значение.

Приём useValue связывает токен со значением, которое Nest не создаёт, а отдаёт как есть. Токен часто задают строкой в поле provide. Контроллер запрашивает его через @Inject, потому что по строке тип в конструкторе сам не выводится.

Покажем на примере постов. Запишем массив в провайдер модуля:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; @Module({ controllers: [PostController], providers: [ { provide: 'POSTS', useValue: ['First post', 'Second post'], }, ], }) export class AppModule {}

В контроллере с префиксом адреса внедрим массив по строковому токену и вернём его содержимое клиенту:

import { Controller, Get, Inject } from '@nestjs/common'; @Controller('posts') export class PostController { posts: string[]; constructor(@Inject('POSTS') posts: string[]) { this.posts = posts; } @Get() getPosts(): string { return this.posts.join(', '); } }

Подставьте готовый массив имён работников по строковому токену в модуль WorkerModule и верните его из WorkerController.

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