본문 바로가기

NodeJS

nestjs에서 config모듈을 이용한 설정 관리

728x90

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를 참조하면 쉽게 따라 할 수 있습니다.

전체 예제 바로 가기

참고자료