부트캠프

21일차 TIL

ohs020105 2024. 11. 27. 21:02

주제: Express와 Prisma를 활용한 사용자 회원가입 기능 구현
1. 회원가입 API 구현
경로: POST /signup
기능: 사용자가 이메일, 비밀번호, 이름, 나이, 성별을 입력하여 회원가입을 할 수 있는 API를 구현함.
2. 핵심 코드 설명

router.post("/signup", async (req, res, next) => {
  const { email, password, name, age, gender } = req.body;

  // 1. 이메일 중복 확인
  const isExistUser = await prisma.users.findFirst({
    where: { email },
  });

  if (isExistUser) {
    return res.status(409).json({ message: "이미 존재하는 아이디입니다." });
  }

  // 2. 사용자 생성
  const user = await prisma.users.create({
    data: { email, password },
  });

  // 3. 사용자 정보 추가 생성
  const userInfo = await prisma.userInfos.create({
    data: {
      email: user.userId,
      name,
      age,
      gender,
    },
  });

  // 4. 성공 응답
  return res.status(201).json({ message: "회원가입이 완료되었습니다." });
});

3. 세부 설명
이메일 중복 확인:
prisma.users.findFirst를 사용하여 입력된 이메일이 이미 존재하는지 확인.
존재할 경우, 409 상태 코드와 함께 오류 메시지 반환.
사용자 생성:
prisma.users.create 메서드를 사용하여 새로운 사용자를 데이터베이스에 생성.
추가 사용자 정보 저장:
prisma.userInfos.create를 통해 사용자 정보를 별도의 테이블에 저장.
응답 처리:
회원가입 성공 시, 201 상태 코드와 성공 메시지 반환.
4. 배운 점
Prisma를 사용하여 데이터베이스와 쉽게 상호작용할 수 있음을 배움.
Express.js에서 비동기 처리를 통해 API 엔드포인트를 효율적으로 구현하는 방법을 이해함.
사용자 입력 데이터의 유효성을 체크하고, 적절한 오류 처리를 통해 안정적인 API 설계를 할 수 있는 방법을 익힘.

오늘 하루도 고생했고 내일 하루도 잘 버텨보자

'부트캠프' 카테고리의 다른 글

아이템 시뮬레이션 트러블슈팅  (1) 2024.11.29
22일차 TIL  (0) 2024.11.28
20일차 TIL  (0) 2024.11.26
19일차 TIL  (0) 2024.11.25
18일차 TIL  (0) 2024.11.21