Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] 유튜브 서비스 - 회원가입 기능(POST) 본문

웹 풀스택

[Node.js] 유튜브 서비스 - 회원가입 기능(POST)

kevinmj12 2025. 2. 19. 01:29
let userDb = new Map();
var id = 1;

app.post("/join", (req, res) => {
  let body = req.body;
  let userId = body.id;
  let password = body.password;
  let userName = body.name;

  let isIdDuplicated = false;
  for (let value of userDb.values()) {
    if (value.id === userId) {
      isIdDuplicated = true;
      break;
    }
  }

  // 정보가 누락된 경우 예외 처리
  if (!userId) {
    res.status(400).json({
      message: "id가 포함되어있지 않습니다.",
    });
  } else if (!password) {
    res.status(400).json({
      message: "password가 포함되어있지 않습니다.",
    });
  } else if (!userName) {
    res.status(400).json({
      message: "name이 포함되어있지 않습니다.",
    });
  }
  // 중복된 id인 경우 예외 처리
  else if (isIdDuplicated) {
    res.status(400).json({
      message: "이미 가입되어있는 id입니다.",
    });
  } else {
    userDb.set(id++, body);
    res.status(201).json({
      message: `${userName}님 환영합니다`,
    });
  }
});

 

회원가입은 POST를 통해서 진행되며 req로 body(userId, pw, name)을 요구한다.

위 값들이 존재하지 않는 경우와, 이미 존재하는 userId로 회원가입을 시도하는 경우의 예외 처리를 진행해주었다.

 

실제로 같은 데이터로 두 번 회원가입을 시도해보도록 하자.

먼저 id, password, name을 모두 입력한 뒤 POST를 하면 정상적으로 처리되는 것을 볼 수 있다.

 

하지만 이후에 다시 요청을 보내면 이미 가입되어 있는 id라는 문구가 나오며 예외 처리가 잘 된 것을 볼 수 있다.