환경 변수를 해당 환경에 저장하는 것이 제일 중요
일반적으로는 각 환경에 맞는 .env 파일에 따라 정의
ConfigService
를 노출하는 ConfigModule
을 만드는 것기본적으로는 forRoot()
메서드 활용
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()
메서드를 사용registreAs
를 통해 그룹화된 config 환경을 제공할 수도 있음
cache
속성을 통해 환경 변수 caching 가능
기능 모듈 내에서 forFeature
메서드를 통해 부분 등록이 가능함
Joi
패키지, custom validate()
를 통해 환경 변수에 대한 검증도 가능
validationSchema
속성custom getter 함수를 만들어 더 효율적인 방식 동작 가능
.env 파일이 로드되기 전에 process.env에 접근되는 것을 방지하기 위해
ConfigModule.envVariablesLoaded
속성에 사용이 가능하다.
ConditionalModule
을 통해 조건부 환경 구성이 가능
${}
문법을 통해 config 에 변수 적용 가능
또, expandVariables
옵션을 통해 환경 변수 확장 가능