Enjoy Programming

Express (Node.js) - middleware 본문

JavaScript/Node.JS

Express (Node.js) - middleware

LEETAEEON 2021. 4. 7. 13:10

middleware에 대해서 알아보자

미들웨어란 간단하게 말하면 클라이언트(유저)에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간에 목적에 맞게 처리를

하는 말하자면 거쳐가는 함수들이라고 보면된다.

 

미들웨어 함수에 대한 엑세스는 next함수를 이용해 다음 미들웨어로 현재 요청을 넘길 수 있다.

순차적으로 처리하는 것이다. 순서가 매우 중요하다!! 어디에 두고 쓰느냐! 이다.

미들웨어 함수 betweenHome을 만들어 줬다. 매개변수에는 req객체와 res객체 next(다음으로 엑세스할 함수)

그런 다음 라우트에 두개의 함수를 집어 넣어준다.

root에 접속하게 되면 handelHome함수를 실행하기전에 betweenHome 미들웨어 함수를 실행 하게 된다.

그럼 콘솔창에 between이 찍히고 next()함수를 실행해 handleHome함수를 실행한다.

 

저렇게 작성하면 라우트에 작성된 경우의 라우트에서만 미들웨어를 실행한다

전체적으로 적용하려면

app.use(betweenHome); 을 작성해주자 . 중요한건 순서이다!!!

어디에 두느냐에 따라 적용되는 라우트가 있고 안되는 라우트가 생긴다

라우트들 맨위에 두면 모든 라우트에 적용이된다. 앞으로 수많은 미들웨어를 작성하게 될 것이다.

use함수를 써서 맨위에 뒀다. 아래 루트나 profile라우트에 접속시 매번 적용 된다.

 

명심하자 순서가 중요하다 루트 라우트 밑에 쓰면 루트접속시에는 적용 되지 않는다.

어렵지만 어느정도 이해 된다. 

 

미들웨어가 주로 쓰이는 상황은

요청에 대하여 url이나 method를 알고자 할 때

POST요청에서 쓰이는 body를 쉽게 얻으려 할 때

모든 req/res에 CORS헤더를 붙일 때

요청 헤더에 사용자 인증 정보가 담겨있는지 확인할 때