! 읽기 전
이 시리즈에 있는 모든 글은 블로그 지향 기반 개발 & 공식 문서 기반으로 작성되었습니다 내용은 정확하지 않을 수도 있으며, 100% 신뢰하지 마시길 바랍니다
next()
를 호출하여 다음 미들웨어 기능으로 제어를 전달. 그렇지 않으면 요청이 중단make middleware example 1
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: Function) {
console.log('Request...');
next();
}
}
make middleware example 2
@Injectable()
export class LoggerMiddleware {
use(req, res, next) {
console.log('Request...');
next();
}
}
apply example 1
@Module({
imports: [CatsModule],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(LoggerMiddleware)
.forRoutes('cats');
}
}
apply example 2
@Module({
imports: [CatsModule],
})
export class AppModule {
configure(consumer) {
consumer
.apply(LoggerMiddleware)
.forRoutes('cats');
}
}
제외 시킬수도 있음
consumer
.apply(LoggerMiddleware)
.exclude(
{ path: 'cats', method: RequestMethod.GET },
{ path: 'cats', method: RequestMethod.POST }
)
.forRoutes(CatsController);
함수도 됨
export function logger(req, res, next) {
console.log(`Request...`);
next();
};
///////
consumer
.apply(logger)
.forRoutes(CatsController);
순차적으로 여러개도 됨
consumer.apply(cors(), helmet(), logger).forRoutes(CatsController);
글로벌로 설정하려면
const app = await NestFactory.create(AppModule);
app.use(logger);
await app.listen(3000);
이렇게 하면 됨
음. 그렇다.
정리하자면… 엔드포인트의 필터로 볼 수 있다.