[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('/*');
  }
}

위 코드에서 AppModuleNestModule을 구현하고, configure 메서드를 사용하여 미들웨어를 적용한다.

결론

Nest.js를 사용하여 타입스크립트로 미들웨어를 작성하는 방법에 대해 알아보았다. 미들웨어를 사용하여 애플리케이션의 요청을 가로채고 처리할 수 있으므로, 효과적인 인증, 로깅 또는 예외 처리 등을 구현할 수 있다.

더 많은 정보를 원하시면 Nest.js 문서를 참고해보세요.