NestJS 미들웨어 사용 방법

조상균·2021년 4월 13일
1

Node.js

목록 보기
3/10
post-thumbnail

nest.js의 미들웨어는 작동 방법은 express의 미들웨어와 비슷하나 코드 실행에 있어 다른 부분도 많습니다.


  1. 먼저 middleware 폴더를 만들고 마들웨어 클래스를 작성합니다.

middleware/TestMiddleware.ts


import { Injectable, NestMiddleware } from '@nestjs/common';

@Injectable()
export class TestMiddleware implements NestMiddleware {
	use(req: any, res: any, next: () => void): any {
		console.log('테스트 미들웨어');
      		next();
	}
}

  1. 미들웨어를 적용할 모듈의 export 부분에 다음과 같이 작성합니다.

user.module.ts

export class UserModule implements NestModule{
	configure(consumer: MiddlewareConsumer) {
		consumer.apply(TestMiddleware).forRoutes(TestController);
	}
}
  • apply() 에는 사용할 미들웨어를 넣습니다.
  • forRoutes() 에는 미들웨어를 사용할 컨트롤러를 넣어줍니다.
  • 컨트롤러는 콤마(,)로 여러개를 사용할 수 있습니다.

  1. 실행 순서를 확인합니다.
  • '테스트 미들웨어'라는 메세지가 콘솔에 먼저 찍히고 TestController의 코드가 실행됩니다.
  • 미들웨어에서 이후 코드를 실행하려면 next(), 실행하지 않는다면 return을 합니다.
  • 미들웨어에서 프론트로 응답을 하고 싶다면 express처럼 res.json, res.send 를 사용합니다.
profile
백엔드 개발을 공부하고 있습니다.

0개의 댓글