[BE] express-async-handler

홍종훈·2023년 7월 13일
0

BE

목록 보기
2/9


express-async-handler는 Express.js 애플리케이션에서 비동기 라우트 핸들러의 예외를 쉽게 처리하기 위한 미들웨어이다.

Express는 비동기 함수에서 발생한 예외를 자동으로 캐치하지 않는다. 따라서, 각 비동기 라우트 핸들러에서 try/catch 블록을 사용해야 한다. 이는 코드를 복잡하게 만들고, 에러 핸들링을 쉽게 잊어버릴 수 있다.

express-async-handler는 이 문제를 해결하기 위해 만들어졌다. 이 미들웨어를 사용하면 비동기 라우트 핸들러에서 발생한 예외를 자동으로 캐치하고, 그것을 다음 미들웨어로 전달한다. 이는 Node.js에서 일반적으로 발생하는 "UnhandledPromiseRejectionWarning"을 방지하고, Express 애플리케이션에서 일관된 에러 핸들링을 가능하게 한다.

아래 코드는 express-async-handler의 사용 예시이다:

const express = require('express');
const asyncHandler = require('express-async-handler');

const router = express.Router();

router.get('/', asyncHandler(async (req, res) => {
  const data = await someAsyncOperation();
  res.json(data);
}));

module.exports = router;

이 예에서 asyncHandler는 비동기 함수를 인수로 받는다. 이 함수에서 발생한 예외는 asyncHandler에 의해 캐치되고, 다음 미들웨어로 전달된다. 따라서, 개별 라우트 핸들러에서 try/catch 블록을 사용할 필요가 없다.

profile
Search Engineer

0개의 댓글