상세 컨텐츠

본문 제목

Express :: 커스텀미들웨어 추가하기, next

Node/Express

by 비오스터딩 2021. 1. 1. 15:10

본문

커스텀 미들웨어

혹시나 브라우저에서 로그인한 사람이 로그아웃을 시도할 수도 있다.

혹은 로그인한 사람이 회원가입을 시도할 수 있다.

이럴 때, 로그인 했을 경우는 위와같은 시도를 하지 못하도록 미들웨어로 설정할 수 있다.

 

routes 폴더에 middlewares.js 파일을 만든다.

아래와 같이 커스텀 미들웨어를 생성한다.

isAuthenticated는 HTTP Header에 있는 속성으로, req안에 있다.

(req는 프론트에서 보낸 요청으로 HTTP가 포함되어있다.)

 

isLoggedIn // 로그인 되어있을 경우 다음 미들웨어로 넘어가고,

로그인이 안되어있으면 401 에러로 처리한다.

isNotLoggedIn // 로그인이 되어있지 않을 경우 다음미들웨어로 넘어가고,

로그인이 되어있으면 401에러로 처리한다.

 

미들웨어는 다음과 같이 적용한다.

  router.post(주소, 커스텀미들웨어, 응답미들웨어);  

라우터이후 응답을 처리하기 전에 위치한다.

 


next와 에러처리미들웨어

 

익스프레스에서 넥스트사용방법은 두가지.

next();  // 넥스트 매개변수 없음 : 다음 미들웨어로 넘어간다.

next(...); // 넥스트 매개변수 존재: 에러처리미들웨어로 간다.

 

에러처리미들웨어는 따로 설정해주지 않아도, 기본적으로 라우트의 제일 마지막 직전에 위치해 있다.

하지만 에러처리를 직접 하고 싶다면 다음과 같이 지정할 수 있다. (따로 지정하지 않아도 저 위치에 있음)

에러를 특별하게 처리하고 싶을때 에러처리미들웨어를 직접 설정한다.

예를 듬련 에러처리 페이지를 따로 띄우고 싶다거나, 에러 페이지에 어떤 정보는 빼고 싶다든가 할때 사용한다.

 

 

 

반응형

관련글 더보기

댓글 영역