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

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

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

Поле validate у метода forRoot вызывается один раз при запуске. Функция передаёт объект окружения в схему Zod четвёртой версии через интерфейс Standard Schema. При списке issues бросают Error, и процесс не поднимает сервер. Иначе возвращают проверенный объект. Это не канал на маршруте и не ответ клиенту с кодом отказа.

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

BLOG_TITLE=Blog

Опишем схему обязательной строки заголовка:

import { z } from 'zod'; export const configSchema = z.object({ BLOG_TITLE: z.string(), });

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

import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { configSchema } from './config.schema.js'; @Module({ imports: [ ConfigModule.forRoot({ validate: async (config) => { const result = await configSchema['~standard'].validate(config); if (result.issues) { throw new Error(result.issues[0].message); } return result.value as Record<string, unknown>; }, }), ], }) export class AppModule {}

Добавьте проверку окружения при старте проекта работников: без названия сайта приложение не должно запускаться.

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