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

Инициализация приложения в Nest

Пусть данные списка нужны, когда собрано уже всё приложение, а не одна его часть. Порт в эту секунду ещё закрыт, страницу открыть нельзя, зато подготовку закончить можно.

Этот момент ловит метод onApplicationBootstrap. К его вызову каждый модуль приложения уже инициализирован, а соединения фреймворк ещё не слушает. Метод вешают на сервис. Интерфейс OnApplicationBootstrap задаёт его вид, и Nest вызывает метод сам.

Покажем на примере постов. Сервис запишет текст списка, когда приложение собрано:

import { Injectable, OnApplicationBootstrap } from '@nestjs/common'; @Injectable() export class PostService implements OnApplicationBootstrap { private label = ''; onApplicationBootstrap() { this.label = 'All posts'; } getPosts(): string { return this.label; } }

Контроллер вернёт подготовленный текст:

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 {}

Корневой модуль подключает модуль постов:

import { Module } from '@nestjs/common'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [PostsModule], }) export class AppModule {}

Заполните данные списка в сервисе WorkerService, когда все модули приложения уже инициализированы, и отдайте их страницей контроллера WorkerController. Модуль работников подключите к корневому.

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