미들웨어란?
클라이언트에게 요청이 오고 그 요청에 대한 응답을 하는 과정에서의 중간 처리 과정,
즉, 중간을 거쳐가는 함수 라고 이해하면 좋다.
나는 이를 코드를 통해 설명해보겠다.
app.get(url, middleware, function(req,res))
와 같은 형식을 가지고 있으며,
middleware의 함수 실행 후, req, res 객체 변경 되게 전달 된다.
그렇게해서 저 코드는 어떻게 실행되는 지 살펴보겠다.
auth
미들웨어의 모습이다.
- 용도는 상대방의 계정이 유효한지 인증 절차를 거치게된다.
이렇게 미들웨어에 대한 간단한 설명을 끝냈다. 추가적인 미들웨어는 후에 다루도록 하겠다.
다음으로는 미들웨어에서 많이 사용되는 next
함수에 대해 알아보자.
다음 미들웨어 함수에 대한 엑세스를 Next()함수를 이용하여, 다음 미들웨어로 현재의 요청 값을 넘길 수가 있다.
위 처럼
app.use()
안에 있는 모든 함수들은 미들웨어이며, 이 미들웨어를 거치면서 클라이언트에게 응답하게 된다.
위의 경우를 가지고 미들웨어 특징을 간단하게 설명하자면,
모든 코드를 실행한다.
다음 미들웨어를 호출한다.
위의 사진을 보면 알 수 있듯이, next()를 통해 다음 미들웨어를 호출 할 수 있다.
res,req 객체 변경을 가능케한다.
위 사진 처럼 req 객체를 변경할 수도 있고, res도 가능하다.
req-res 주기를 종료시킨다.
위와 같은 코드처럼 response method를 사용하여 주기를 중단 시킬 수 있다.
왜냐하면 응답을 하게되면 주기가 끝나기 때문이다.
이로써 미들웨어에 대한 이해와 next함수에 대해서 알아보았다.