1 분 소요

CRUD

image-20220320160509861

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 });
  }
});

카테고리:

업데이트:

댓글남기기