Nest.js) .env 파일(환경변수)이 읽히지 않을 때

반응형

nestjs 에서 sql을 사용할 때 orm으로 typeorm을 주로 사용한다.

app.module.ts에서 TypeOrmModule을 import해서 사용해야 하는데,

host, port, username 등 외부로 공개되면 안되는 키들은 .env 파일이라는 환경변수로 두고 사용하게 된다.

 

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: process.env.DB_HOST,
      port: Number(process.env.DB_PORT),
      username: process.env.DB_USERNAME,
      password: process.env.DB_PASSWORD,
      database: process.env_DB_NAME,
      entities: [
       // entities 추가
      ],
      synchronize: true,
    }),
	ConfigModule.forRoot({
      envFilePath: '.env',
      isGlobal: true,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

 

이렇게 TypeOrmModule을 설정하고,

ConfigModule에서 envFilePath를 설정한다

하지만 

해당 오류가 나게 된다.

env 파일을 읽지 못해 일어나는 오류인데,

 

ConfigModule.forRoot({
    envFilePath: '.env',
	isGlobal: true,
})

위와 같이 ConfigModule을 TypeOrmModule보다 먼저 써줘서 .env 파일을 읽도록 하면 해결된다.

 

다른 사용자에서는 일어나지 않는 오류인데, 

혹시 이런 오류가 생긴다면 이렇게 해결하는 것도 괜찮을 것 같다.

반응형

'Backend > Nest.js' 카테고리의 다른 글

Nest.js) Unknown authentication strategy "jwt" "local"  (0) 2022.01.17