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

Параметры из конфигурации в Nest

Пусть логин и адрес базы записаны прямо в модуле. На другой машине те же строки не подходят, а править исходник ради каждого окружения неудобно.

Ключи DB_HOST, DB_PORT, DB_USER, DB_PASSWORD и DB_NAME кладут в .env. ConfigModule с методом forRoot читает файл при старте. Модуль базы подключают через forRootAsync: фабрика получает ConfigService и возвращает тот же объект postgres, что и при синхронном подключении.

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

DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=postgres DB_NAME=site

В корневом модуле свяжем конфигурацию и асинхронное подключение TypeORM:

import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ imports: [ ConfigModule.forRoot(), TypeOrmModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (configService: ConfigService) => ({ type: 'postgres', host: configService.get('DB_HOST'), port: Number(configService.get('DB_PORT')), username: configService.get('DB_USER'), password: configService.get('DB_PASSWORD'), database: configService.get('DB_NAME'), autoLoadEntities: true, synchronize: false, }), }), ], }) export class AppModule {}

Возьмите параметры подключения к базе проекта работников из файла окружения и соберите из них объект соединения в модуле базы.

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