Middleware에 대해 짧게 정리

황유정·2021년 9월 30일
0

저번에 같은 팀을 했던 너무 좋은 분과 모르는 것을 정리해서 얘기해주는 시간을 가졌다.

middleware에 대해 잘 이해가 안 가서 정리를 하고 설명을 하려고 했다.
reference: https://psyhm.tistory.com/8

middleware란?
미들웨어란 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려 할 때 중간(미들)에서 목적에 맞게 처리를 하는, 말하자면 거쳐가는 함수들이다.

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

next를 통해 미들웨어는 순차적으로 처리된다. 따라서 순서가 중요하다고 합니다.

예시)

기본 주차 때, insomnia 이용해서 물건들의 id, 가격, url등등 post하려고 할 때, app.use(express.json());을 위쪽에다가 올려야 작동이 되더라고요! 그만큼 순서가 중요한 듯 합니다.
.
.
.
app.use()안에 있는 모든 함수들은 모두 Middleware이며, 요청이 올때마다 이 미들웨어를 거치며 클라이언트에게 응답하게 된다.

자료 사진)

또한, router.use() router.METHOD() 함수를 사용하여 라우터 레벨 미들웨어를 로드할 수 있다.

router를 사용하는 이유는 특정 root url을 기점으로 기능이나 로직별로 라우팅을 나눠서 관리할 수 있다는 점이다.

자료 코드)
router.put("/goods/:goodsId/cart", authMiddleware, async (req, res) => {}

router.get("/goods/cart", authMiddleware, async (req, res) => {}

이 미들웨어들을 어떨 때 사용하면 편리하냐면:
페이지를 렌더링할 때 사용자 인증을 앞서 거친 후에 렌더링하고 싶을 때 사용자 인증 미들웨어를 작성하고 앞에 삽입하게 되면 편리하다. --> 저희 지금 2주차 때 사용자 인증 미들웨어를 구현하기 했음!

0개의 댓글

관련 채용 정보