웹 풀스택

[Node.js] 유튜브 서비스 - 로그인(POST)

kevinmj12 2025. 2. 20. 16:34
app.post("/login", (req, res) => {
  let body = req.body;
  let userId = body.id;
  let password = body.password;

  // 정보가 누락된 경우 예외 처리
  if (!userId) {
    res.status(400).json({
      message: "id가 포함되어있지 않습니다.",
    });
  } else if (!password) {
    res.status(400).json({
      message: "password가 포함되어있지 않습니다.",
    });
  } else{
    
  }

  res.json(`님 환영합니다!`);
});

먼저 userId 또는 password가 입력되지 않을을 때에 대한 예외 처리를 진행해주었다.

else문에 userDb에서 id, pw를 조회하는 코드를 구현하자.

 

app.post("/login", (req, res) => {
  let body = req.body;
  let userId = body.id;
  let password = body.password;
  let loginUser = {};

  // 정보가 누락된 경우 예외 처리
  if (!userId) {
    res.status(400).json({
      message: "id가 포함되어있지 않습니다.",
    });
  } else if (!password) {
    res.status(400).json({
      message: "password가 포함되어있지 않습니다.",
    });
  } else {
    userDb.forEach((val, idx) => {
      if (val.id === userId) {
        loginUser = val;
      }
    });

    if (Object.keys(loginUser).length !== 0) {
      if (loginUser.password === password) {
        res.json({
          message: `${loginUser.name}님 환영합니다!`,
        });
      } else {
        res.json({
          message: "패스워드가 일치하지 않습니다",
        });
      }
    } else {
      res.json({
        message: "아이디가 일치하지 않습니다.",
      });
    }
  }
});

 

먼저 테스트용 id, password로 회원가입을 진행해준 뒤,

맞는 id, password를 입력하면 정상적으로 로그인 처리가 진행된다.

 

이외에도 존재하는 아이디와 일치하지 않는 패스워드를 입력한 경우와,

존재하지 않는 아이디를 입력한 경우 모두 잘 처리되는 것을 확인할 수 있다.