백엔드 Back-end/네스트제이에스 NestJS 3

Q. NestJS에서 앱이 구동될 때 실행되도록 하는 방법은?

A. onApplicationBootstrap()을 활용하면 된다. 참고: NestJS Lifecycle Events NestJS에서는 의존성 주입을 많이 쓰기 때문에, 의존성 주입하는 클래스를 new로 인스턴스를 생성해서 main.ts에서 실행하기는 쉽지 않다. 등록된 모듈 파일 중 하나에 아래 코드를 넣어보자. onApplicationBootstrap() { console.log('Test onApplicationBootstrap'); } 그리고 npm run start:dev를 실행하면 쭉 뜨는 사이에 위 로그가 찍히는 것을 볼 수 있을 것이다.

Q. NestJS gRPC 클라이언트 구현에서 "The invalid gRPC service (service not found)" 에러 원인은?

A. service명이 잘못 되어서 그렇다. 여기서 service명은 gRPC 서비스명이다. 예를 들어서 아래와 같은 hero.proto 파일이 있다. (출처: nestjs microservices gRPC) syntax = "proto3"; package hero; service HeroesService { rpc FindOne (HeroById) returns (Hero) {} } message HeroById { int32 id = 1; } message Hero { int32 id = 1; string name = 2; } 여기서 서비스명은 'HeroesService'이다. 팩키지명은 'hero'이다. service ABCD { rpc FindOne (HeroById) returns (Hero) ..

Q. NestJS에서 HTTP 요청 시 로그 찍는 방법은?

A. NestMiddleware 커스텀 클래스를 구현하면 된다. 문제기본 설정에서는 HTTP 요청을 해도 로그가 찍히지 않는다.아무리 localhost:3000을 방문해도 로그는 그대로다.  해결 방법NestMiddleware 커스텀 클래스를 구현한다. 이때 Request, Response 객체 등을 받아서 로그로 출력하면 된다.아래는 코드 예이다.  로그가 찍히는 것을 볼 수 있다. 코드 전체 보기 참고NestJS MiddlewareHow-to : Logging request/response in Nest.js properly