CRUD
CRUD
Create
- 정보를 생성하는 과정으로
- 사용자의 행동에 따라 새로운 정보를 생성하고
- 이를 서버에 저장해 둔다.
- Ex( 회원가입, 장바구니추가, 호텔 예약 )
간단한 회원가입
//회원가입
app.post("/users/signup", async (req, res) => {
try {
const { email, password } = req.body; //req안에 body에 보낸 email, password가 저장되어 있다.
console.log("email : ", email, "\n", "name : ", password);
// 비밀번호가 짧을 때
if (password.length < 8) {
return res.status(400).json({ message: "PASSWORD_TOO_SHORT" });
}
//이미 가입했는지 확인 //CUSTOM_ERROR
const selectUser = await prisma.$queryRaw`
SELECT email FROM users`; //쿼리문을 사용해서 사용자 테이블에 email을 가져오고
for (let i in selectUser) {
if (selectUser[i].email == email) { //이메일을 돌면서 이미 저장된 이메일이 있으면 return 에러
return res.status(409).json({ message: "EXSITING_USER" });
}
}
const createdUser = await prisma.$queryRaw` //짧지도 않고 사용하던 이메일도 없으면 저장
INSERT INTO users(email, password) VALUES (${email}, ${password});`;
return res.status(201).json({ message: "CREATED" });
} catch (err) {
console.log(err);
return res.status(500).json({ message: err.message });
}
});
Read
- 클라이언트의 요청에 따라 데이터베이스에 저장된 데이터를 조회하는 과정
- 데이터를 읽어오고 가공하거나 추가적인 로직을 적용하여 클라이언트에게 반환한다.
- EX ( 상품정보 불러오기, 장바구니 상품 조회, 구매 이력 조회 )
간단한 회원가입 정보 읽어오기
//데이터 가져오기
app.get("/users", async (req, res) => {
try {
const selectUser = await prisma.$queryRaw` //쿼리문으로 user 정보를 가져오고
SELECT * FROM users;`;
res.json(selectUser); //json을 이용하여 화면에 보여준다. 값을 출력하기 때문에 status를 작성하지 않는다.
} catch (err) {
console.log(err);
return res.status(500).json({ message: err.message });
}
});
update
- 서버에 저장된 데이터를 새로 생성하거나 제거하는 과정 없이
- 정보를 수정하는 과정을 말한다.
- EX ( 회원정보 업데이트, 장바구니 업데이트, 상품 정보 수정 )
간단한 회원가입 정보 수정
//수정
app.put("/users", async (req, res) => { //put을 이용한다.
try {
const { email, password } = req.body; //body에서 email, password를 가져온다.
const updateUser = await prisma.$queryRaw`
UPDATE users SET email = ${email} ,password = ${password} WHERE email = ${email} //이메일 같은 곳에 비밀번호를 수정한다.
`;
return res.status(201).json({ message: "UPDATE" }); //완료되면 메시지를 보내준다.
} catch (err) {
console.log(err);
return res.status(500).json({ message: err.message });
}
});
Delete
- 서버에 저장되어있던 데이터를 제거하는 과정이다.
- EX ( 회원탈퇴, 등록된 상품 제거 )
간단한 회원탈퇴
//삭제
app.post("/users/remove", async (req, res) => {
try {
const { email } = req.body; //email을 받아오고
const deleteUser = await prisma.$queryRaw`
DELETE FROM users WHERE email=${email}; //해당 이메일 정보를 삭제한다.
`;
return res.status(201).json({ message: "DELETE" });
} catch (err) {
console.log(err);
return res.status(500).json({ message: err.message });
}
});
댓글남기기