JS/Nest.js

[Nest] Exception Filter 구현

Mini_96 2024. 9. 22. 22:36

* 개념

  • 주로 에러발생시 모니터링시스템 API 호출등에 사용된다.
  • 로그파일 생성

* 구현

  • 간단하게 res를 바꿔주는 ExceptionFilter
import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from "@nestjs/common";

@Catch(HttpException) //모든예외는 HttpException의 자식임 -> 이 예외를 잡겠다.
export class HttpExceptionFilter implements ExceptionFilter {
  catch(exception: HttpException, host: ArgumentsHost) {
    const context = host.switchToHttp();
    const req = context.getRequest();
    const res = context.getResponse();
    const status = exception.getStatus();

    res
      .status(status)
      .json({
        statusCode: status,
        message: exception.message,
        timestamp: new Date().toLocaleString('kr'),
        path: req.url,
      });
  }
}