처음 시작은 nestjs 서버 시작하는 로그를 DB에 남기기 위해서였다.
어떻게 할까 궁리하며 이것저것 찾아보다 보니, main.ts에서 모듈을 불러와 처리하는 방법이 가장 간단하고 깔끔한 것 같아 정리한다.
단지 모듈을 어떻게 들고오는지 궁금하다면, 바로 구현방법 파트로 넘어가자
목표
목표는 아래 사진에 나오는 것처럼 NestJS Application이 정상 동작했다는 로그(Nest application successfully started)가 나온 뒤, database에 서버가 시작됐다는 로그를 남기는 것이다.
구현 방법
구현 방법은 매우 간단한다.
//...
await app.listen(9091);
const logService = app.get('homemadeClass');
logService.saveSystemLog({
access_id: configService.get(''),
access_ip: '-',
log_levels: 'Info',
content: 'SERVER HAS SUCCESSFULLY STARTED!',
detail_info: 'SERVER HAS SUCCESSFULLY STARTED!',
});
}
bootstrap();
app.listen()이 종료 된 이후, 기존에 만들어 뒀던 클래스를 app.get을 통해 변수에 담아두고,
원하는 로직을 실행시키면 된다.
마무리
사실 구현 방법은 너무 간단하지만, 어떻게 구현 할 수 있을 지 궁리를 하다가 정말 많은 걸 공부하게 됐다. (nestjs LifeCycle, graceful shutdown, etc)
이러한 내용은 추후에 작성 해보도록 하겠다.(참고링크)
'NestJS' 카테고리의 다른 글
[Nestjs] request.cookies undefined 해결 (0) | 2023.09.15 |
---|---|
DB 테이블을 entity로 만들기(nestjs) (0) | 2022.05.25 |
nestjs Logger Middleware 만들기(feat. log db저장) (0) | 2022.05.12 |
nestJS app 밖에서 nestJS application instance 사용하기 (0) | 2022.04.29 |
migration 으로 DB 초기값 설정(with typeorm) (0) | 2022.04.28 |