[NestJS] 6. HTTP METHOD를 다양히 활용하여, 추가 기능 만들기

주수호·2022년 5월 15일
0

이후 만든 고양이 crud에 동적인자를 받아 업데이트 패치 삭제(임시)의 코드를 작성합니다.

...
// 고양이 데이터 업데이트 -> PUT
router.put("/cats/:id", (req, res) => {
  try {
    const params = req.params;
    const body = req.body;
    let result;
    Cat.forEach((cat) => {
      if (cat.id === params.id) {
        cat = body;
        result = cat;
      }
    });

    res.status(200).send({
      success: true,
      data: {
        cat: result,
      },
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error.message,
    });
  }
});

// 고양이 데이터 부분 업데이트 -> PATCH
router.patch("/cats/:id", (req, res) => {
  try {
    const params = req.params;
    const body = req.body;
    let result;
    Cat.forEach((cat) => {
      if (cat.id === params.id) {
        cat = { ...cat, ...body }; // 구조 분해 할당 : 중복되어진 key에 대한 value값을 교체해줍니다.
        result = cat;
      }
    });

    res.status(200).send({
      success: true,
      data: {
        cat: result,
      },
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error.message,
    });
  }
});

// 고양이 데이터 삭제 -> DELETE
router.delete("/cats/:id", (req, res) => {
  try {
    const params = req.params;
    const newCat = Cat.filter((cat) => cat.id !== params.id); //임시로 해당 요청된 값을 제외간 값을 가져오도록 처리
    res.status(200).send({
      success: true,
      data: newCat,
    });

    res.status(200).send({
      success: true,
      data: {
        cat: newCat,
      },
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error.message,
    });
  }
});
...
profile
항상 준비하는 엔지니어

0개의 댓글