NestJS Configuration

paduck·2024년 6월 16일
0

NestJS

목록 보기
23/24

환경 변수를 해당 환경에 저장하는 것이 제일 중요

일반적으로는 각 환경에 맞는 .env 파일에 따라 정의

  • .env 파일을 로드하는 ConfigService를 노출하는 ConfigModule을 만드는 것

기본적으로는 forRoot() 메서드 활용

  • .env 파일에 대한 경로는 envFilePath 속성 적용

전역으로 사용하려면 import 하거나 isGlobal 속성 사용

커스텀 구성 파일을 활용해 복잡한 config 환경 조성 가능

export default () => ({
  port: parseInt(process.env.PORT, 10) || 3000,
  database: {
    host: process.env.DATABASE_HOST,
    port: parseInt(process.env.DATABASE_PORT, 10) || 5432
  }
});
  • 해당 내용을 load 속성을 사용해서 적용

차후에, 환경 번수에 접근하려면 configService를 활용하는데,

  • configService.get() 메서드를 사용
  • typescript 의 인터페이스를 활용해 type 도움을 사용 가능

registreAs를 통해 그룹화된 config 환경을 제공할 수도 있음
cache 속성을 통해 환경 변수 caching 가능

기능 모듈 내에서 forFeature 메서드를 통해 부분 등록이 가능함

Joi 패키지, custom validate() 를 통해 환경 변수에 대한 검증도 가능

  • validationSchema 속성

custom getter 함수를 만들어 더 효율적인 방식 동작 가능

.env 파일이 로드되기 전에 process.env에 접근되는 것을 방지하기 위해 ConfigModule.envVariablesLoaded 속성에 사용이 가능하다.

ConditionalModule 을 통해 조건부 환경 구성이 가능

  • ConfigModule이 애플리케이션에 우선 로드
  • ConfigModule.envVariablesLoaded 사용

${} 문법을 통해 config 에 변수 적용 가능
또, expandVariables 옵션을 통해 환경 변수 확장 가능

profile
학습 velog

0개의 댓글