npm i --save @nestjs/config
AppModule
에 ConfigModule
를 추가해준다. 그리고 forRoot()
메소드를 통해서 ConfigModule
를 설정해준다. validationSchema
는 .env
안에 있는 환경변수들을 검증하는 역할을 한다. 만약 검증에 실패한다면 앱이 실행되지 않는다. 검증을 할 땐 joi라는 라이브러리를 사용한다. imports
배열의 제일 앞으로 옮겨야 에러가 발생하지 않는다.
// .env
DB_HOST=localhost
DB_PORT=5432,
DB_USERNAME=root,
DB_PASSWORD=root,
DB_NAME=test
...
import Joi from 'joi';
import { ConfigModule } from '@nestjs/config';
...
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
envFilePath: ".env",
validationSchema: Joi.object({
NODE_ENV: Joi.string().valid('dev').required(),
DB_HOST: Joi.string().required(),
DB_PORT: Joi.string().required(),
DB_USERNAME: Joi.string().required(),
DB_PASSWORD: Joi.string().required(),
DB_NAME: Joi.string().required(),
}),
}),
...
],
...
})
export class AppModule {}