주제: 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 설계를 할 수 있는 방법을 익힘.
오늘 하루도 고생했고 내일 하루도 잘 버텨보자