withHandler

With·2022년 3월 13일
0

Next Backend

목록 보기
5/6
post-custom-banner

withHandler의 목적

  • 각각의 API에서 공통적으로 처리해야 할 로직을 처리한다. withHandler사용함으로서 코드의 중복을 방지한다. 예를 들어, method 검증이나 또는 로그인/비로그인 상태에 따라 redirect 시키는 로직등이 있을 것 같다.

code


type WithHandlerConfig = {
  method: "POST" | "GET" | "DELETE" | "PUT" | "PATCH";
  handler: (req: NextApiRequest, res: NextApiResponse) => void;
};

export default function withHandler({method, handler}: WithHandlerConfig){
  // 함수를 리턴한다. 
  return async function (request, response){
  	// 모든 API에서 공통적으로 처리하고자 하는 로직을 구현
    if(request.method !== method){
      return response.status(405).end();
    }
    // Handler 실행
    try{
      await handler(request, response);
    } catch(e){
      return response.status(400).end();
    }

  }
}
profile
주니어 프론트엔드 개발자 입니다.
post-custom-banner

0개의 댓글