✨안녕하세요!? 오늘은 지난 시간에 이어서 미들웨어 다른 기능들에 대해 알아보는 시간을 갖도록 하겠습니다. 코드는 저번 시간에 사용했던 내용과 크게 다르지 않습니다. 변형되는 부분들만 수정해주시면 됩니다~!!
위의 코드를 기준으로 하나씩 변형하면 새롭게 접하는 기능들에 대해 알아보도록 하겠습니다.
🎉Roue Wildcards
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes('c*ts');
}
}
위 코드는 "cts", "cats", "c_ts" 와 같은 경로로 요청을 받을 수 있습니다. *외에도 ?, +, () 문자들도 와일드 카드에서 동일하게 작동합니다. (📢단, 하이폰(-)과 점(.)은 문자열로 인식하니 주의하세요)
🎉특정 경로 제외
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).exclude(
{ path: 'cats', method: RequestMethod.GET },
{ path: 'cats', method: RequestMethod.POST }
).forRoutes('cats');
}
}
미들웨어가 적용되지 않도록 특정 경로를 제외할 수 있습니다. exclude() 메소드를 사용하여 쉽게 원하는 경로를 제외할 수 있습니다. 위의 코드를 보면 알 수 있듯이, 예외를 원하는 라우팅 경로를 입력하고 해당 http method를 알려주면 됩니다.
🎉Multiple middleware
export class AppModule implements NestModule {
consumer.apply(cors(), helmet(), LoggerMiddleware).forRoutes("cats");
}
}
위의 코드를 보면, 여러 미들웨어를 바인딩할 수 있습니다. cors()는 cors 이슈를 막아주는 외부 라이브러리 미들웨어이며 helmet()은 http 헤더 설정을 자동으로 바꾸어 앱의 취약성으로부터 앱을 보호하는 라이브러리 함수입니다. 이런 식으로 apply에 원하는 미들웨어를 순차적으로 입력하여 원하는 기능을 수행하도록 할 수 있습니다.
여기까지 미들웨어의 개념과 활용법 그리고 여러 기능들에 대해 알아보았습니다. 여러분들도 여러분만의 미들웨어를 작성하여 적용시켜보세요~!! 그러면 이만~~~
'Nestjs' 카테고리의 다른 글
[Nestjs]7-1. Guard 기본적인 구현 방법 (0) | 2022.06.25 |
---|---|
[Nestjs] 7. Guard 🥊🥊 (0) | 2022.06.25 |
[Nestjs] 6-1. Nestjs의 미들웨어(middleware) (0) | 2022.05.15 |
[Nestjs] 6. 미들웨어 (middleware) (0) | 2022.05.13 |
[Nestjs] 5-1. 공유 모듈 (shared modules) (0) | 2022.04.27 |