Wii Pointer #1 Tilt Normal
본문 바로가기
📘 𝐭𝐢𝐥/일간 회고

[23.02.17]

by 개발자_후니 2023. 2. 17.
728x90
반응형

목차

  • 내가 생각한 Middleware
  • 챌린저 팀원들이 생각한 Middleware
  • 정확히 Middleware란?
내가 생각한 Middleware

 

middleware에 대한 개념이 좀 부족했다.

 

정확히 어떤 개념인지 잘 정립되지 않았다.

 

그래서 챌린저스 팀원들이랑 같이 의견을 나누었다.


챌린저 팀원들이 생각한 Middleware

 

middleware는 사실 app.js에서도 사용이된다.

 

결론은 middleware는 app.js를 간결하게 만들어 주기 위하여 만들어진 것이라고 결론이 났다.

 

생각해보니 내가 여태껏 만들었던 프로젝트를 다시보면,

 

middleware는 auth 그러니까 로그인 기능에 관하여 관여하고 있었다.

 

어떠한 url로 접속을 했을때 거치게 만드는 중간이라고 생각할 수 있겠다.

 


정확히 Middleware란?

서버에 요청이 가기전에 작업들을 처리하는것이 Middleware라고 볼 수 있다.

 

하나 예시를 들어주겠다.

 

 

해당 코드는 routes에 있는 코드다

 

/posts 라는 경로로 post 메서드 요청을 하면 ==> authMiddleware 를 거치고 ==> body 에서 reqest 받고 response 를 한다.

 

그렇다면 authMiddleware를 볼까?

 

const jwt = require("jsonwebtoken");
const { Users } = require("../models");

module.exports = async (req, res, next) => {
  try {
    const { authorization } = req.cookies;
    const [tokenType, token] = authorization.split(" ");
    if (tokenType !== "Bearer") {
      return res.status(401).json({ message: "토큰 타입이 일치하지 않습니다." });
    }

    const decodedToken = jwt.verify(token, "customized-secret-key");
    const userId = decodedToken.userId;

    const user = await Users.findOne({ where: { userId } });
    if (!user) {
      res.clearCookie("authorization");
      return res.status(401).json({ message: "토큰 사용자가 존재하지 않습니다." });
    }
    res.locals.user = user;

    next();
  } catch (error) {
    res.clearCookie("authorization");
    return res.status(401).json({
      message: "비정상적인 요청입니다."
    });
  }
}

 

해당 authMiddleware를 거쳐야만 게시글생성이던지 수정이던지 삭제를 할 수 있다.

 

즉, 뭔가 걸러줘야할 때 사용할 수 있는 거라고 생각하면 쉽게 이해할 수 있겠다.

 

결론 : 어떠한 메서드를 요청했을 때, 꼭 거쳐서 걸러줘야할 때 사용하는 것이다.

 

728x90
반응형

'📘 𝐭𝐢𝐥 > 일간 회고' 카테고리의 다른 글

[23.02.20]  (1) 2023.02.20
[23.02.18]  (0) 2023.02.18
[23.02.16][작성요망]  (0) 2023.02.16
[23.02.15]  (0) 2023.02.15
[23.02.14][작성요망]  (0) 2023.02.15