NodeJS

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

lahuman 2022. 12. 9. 16:39
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를 참조하면 쉽게 따라 할 수 있습니다.

전체 예제 바로 가기

참고자료

728x90