// app.module.ts
...
import * as mongoose from 'mongoose';
// app.module.ts
@Module({
imports: [
CatsModule,
// 환경변수를 위한 모듈
ConfigModule.forRoot(),
// mongoose 사용을 위한 모듈
MongooseModule.forRoot(process.env.MONGODB_URI, {
useNewUrlParser: true, //mongodb url 읽기 위한 설정
useUnifiedTopology: true, // mongodb 최신 드라이버 엔진 사용을 위한 설정
}),
],
controllers: [AppController],
providers: [AppService, CatsService],
})
export class AppModule implements NestModule {
private readonly isDev: boolean =
process.env.MODE === 'dev' ? true : false;
configure(consumer: MiddlewareConsumer) {
// 모든 엔드포인트에 로그 적용
consumer.apply(LoggerMiddleware).forRoutes('*');
// 현재 개발환경이 dev 환경일 경우, 디버깅 로깅 진행
mongoose.set('debug', this.isDev);
}
}
AppModule 클래스 내 isDev 프라이빗 변수를 만들어서 MODE 환경변수가 'dev'인지 여부를 확인한 뒤 불리언 값을 반환하는 값을 할당하도록 한다. 이는 아래 로깅을 위한 mongoose.set() 메소드의 파라미터에 필요하기 때문이다. MODE가 'dev', 즉 개발 모드인 경우 디버깅 로그를 찍고 그렇지 않고 프로덕션 환경인 경우 로깅을 하지 않도록 하는 방식이다.
'Research > Nest.js' 카테고리의 다른 글
nestjs_DTO 만들고 붙이기 (0) | 2023.04.05 |
---|---|
nestjs_mongoose 스키마 설계 후 class-validator 적용 (0) | 2023.04.05 |
nestjs_환경변수 설정 +mongodb 연동 (0) | 2023.04.05 |
nestjs_횡적 부가기능을 위한 interceptor (0) | 2023.04.04 |
nestjs_pipe로 변환과 유효성 검사 진행하기 (0) | 2023.04.04 |
댓글