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

Пространство имён настроек в Nest

Пусть в файле окружения много ключей с разными префиксами. Обращаться к каждому по длинному имени неудобно, а связанные строки лучше держать в одной группе.

Функция registerAs описывает фабрику настроек с коротким именем пространства. Поле load у метода forRoot подключает такие фабрики при старте. Метод get тогда принимает путь через точку: сначала имя группы, затем поле внутри неё.

Покажем на примере постов:

BLOG_TITLE=Blog

Вынесем заголовок блога в отдельный файл настроек:

import { registerAs } from '@nestjs/config'; export default registerAs('blog', () => ({ title: process.env.BLOG_TITLE, }));

Контроллер прочитает поле из группы blog:

import { Controller, Get } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; @Controller('posts') export class PostController { constructor(private configService: ConfigService) {} @Get() getPosts(): string { return this.configService.get('blog.title'); } }

Подключим фабрику в корневом модуле через поле load:

import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import blogConfig from './blog.config.js'; import { PostController } from './post.controller.js'; @Module({ imports: [ConfigModule.forRoot({ load: [blogConfig] })], controllers: [PostController], }) export class AppModule {}

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

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