[typescript] Nest.js에서 타입스크립트 미들웨어 작성하기
Nest.js에서 미들웨어를 작성하는 방법을 알아보자. Nest.js는 Express 기반의 웹 프레임워크로, 타입스크립트를 사용하여 미들웨어를 작성할 수 있다. 이번 포스트에서는 Nest.js 애플리케이션에서 타입스크립트로 미들웨어를 작성하는 방법을 다뤄볼 것이다.
1. Nest.js 프로젝트 설정하기
우선 Nest.js 프로젝트를 설정해야 한다. 아래 명령어로 Nest.js 프로젝트를 새로 생성한다.
nest new my-nest-app
프로젝트가 생성되면, 미들웨어를 사용할 준비가 끝난 것이다.
2. 미들웨어 작성하기
Nest.js에서 미들웨어는 @Middleware()
데코레이터를 사용하여 작성한다. 예를 들어, 인증 미들웨어를 작성해보자.
import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';
@Injectable()
export class AuthMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: NextFunction) {
// 미들웨어 로직을 작성한다.
if (req.headers.authorization === 'secret-token') {
next();
} else {
res.status(401).send('Unauthorized');
}
}
}
위 코드에서 AuthMiddleware
클래스는 NestMiddleware
를 구현하고 있으며, use
메서드를 통해 미들웨어 로직을 작성한다.
3. 미들웨어 적용하기
작성한 미들웨어를 모듈에 적용하기 위해 아래와 같이 코드를 수정한다.
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { AuthMiddleware } from './auth.middleware';
@Module({})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(AuthMiddleware)
.forRoutes('/*');
}
}
위 코드에서 AppModule
은 NestModule
을 구현하고, configure
메서드를 사용하여 미들웨어를 적용한다.
결론
Nest.js를 사용하여 타입스크립트로 미들웨어를 작성하는 방법에 대해 알아보았다. 미들웨어를 사용하여 애플리케이션의 요청을 가로채고 처리할 수 있으므로, 효과적인 인증, 로깅 또는 예외 처리 등을 구현할 수 있다.
더 많은 정보를 원하시면 Nest.js 문서를 참고해보세요.