nestjs에서 config모듈을 이용한 설정 관리
nodejs에서는
dotenv
라는 모듈을 이용해서 설정 파일을 관리 하였습니다. nestjs는config
라는 모듈을 제공하고 있는데요. 간단하게 사용법을 알아봅니다.
설치
@nestjs/config 모듈은 내부적으로 dotenv 모듈을 사용하고 있습니다.
$ npm i --save @nestjs/config
사용
사용법은 imports
에 ConfigModule.forRoot()을 추가 하면 됩니다.
// app.module.ts
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ConfigModule.forRoot()],
})
export class AppModule {}
다른 옵션으로, 파일 명이나 전역 사용 등을 아래와 같이 설정 가능합니다.
// app.module.ts
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import database from './commons/config/database';
import logging from './commons/config/logging';
import redis from './commons/config/redis';
import cache from './commons/config/cache';
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env.local', '.env'], // 설정 파일명
isGlobal: true, // 전역 여부
load: [database, logging, redis, cache], //추가 설정파일 로드
}),
TypeOrmModule.forRootAsync({ // 다른 모듈에서 configService 사용 예제
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) =>
configService.get('databaseConfig'),
}),
],
})
export class AppModule {}
Configuration를 참조하면 쉽게 따라 할 수 있습니다.