> yarn add @nestjs/config
환경변수 관리를 위해서 config 패키지를 설치합니다.
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
],
})
export class ConfigurationModule {}
설치한 config 패키지 설정을 추가합니다.
AppModule
에서 직접 import해도 상관없는데, ConfigModule
설정 부분이 코드가 많아지게 되는 경우 AppModule
이 복잡해 보일 수 있어서 별도의 디렉토리를 만들고 ConfigurationModule
을 만들어서 AppModule
에서 import하도록 설정했습니다.
isGlobal: true
옵션을 주면 글로벌 Module 로 설정되어 어떤 모듈에서든지 ConfigService
를 inject 할 수 있습니다.
CHAT_SERVER_IP=127.0.0.1
(.env)
프로젝트 root 폴더에 .env
파일을 만들고 위와 같이 환경변수를 설정할 수 있습니다.
별도의 옵션을 명시하지 않는 경우, .env
파일에 환경변수가 있다고 암묵적으로 약속이 되어 있습니다.
환경변수를 참조할 파일 path를 변경하고 싶으면 envFilePath
옵션으로 설정을 바꾸면 됩니다. (Reference 참고)
import { Controller, Get, Render } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
@Controller()
export class AppController {
constructor(private readonly configService: ConfigService) {}
@Get()
@Render('index')
root() {
const chatServerIP = this.configService.get<string>('CHAT_SERVER_IP');
console.log(chatServerIP);
return { chatServerIP };
}
}
위와 같이 ConfigService 를 어디에서든지 inject 하여 원하는 환경변수를 조회하여 사용할 수 있습니다.
NestJS 공식문서에 더 상세한 설정 방법이 나와 있습니다.
https://docs.nestjs.com/techniques/configuration