Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] 유튜버 조회 서비스 - 유튜버 삭제(DELETE) 본문

웹 풀스택

[Node.js] 유튜버 조회 서비스 - 유튜버 삭제(DELETE)

kevinmj12 2025. 2. 18. 15:27

개별 유튜버 삭제

app.delete("/youtuber/:id", function(req, res){
  let {id} = req.params;
  id = parseInt(id);

  const channelTitle = youtuberDb.get(id).channelTitle;
  youtuberDb.delete(id);
  
  res.json({
    message: `${youtuber}님이 삭제되었습니다.`
  })
})

삭제를 요청하는 기능은 DELETE 요청을 통해 처리할 수 있다.

위 코드는 POST, GET 요청 등에서 사용됐던 기능들을 응용하여 간단하게 작성한 것이다.

그럼 위 DELETE 요청이 잘 이루어지는지 테스트를 해보자.

 

1번 아이디에 해당되는 침착맨이 사라지고 전체 유튜버들을 조회하더라도 보이지 않는 모습을 확인할 수 있다.

그런데 만약 저장되어있지 않은 4번 id의 유튜버를 삭제하려고 하면 어떻게 될까?

당연하게도 undefined 에러가 발생하며 제대로 동작하지 않는다.

삭제를 진행하기 전에, youtuberDb에서 해당 id의 유튜버가 있는지를 먼저 조회해야 할 것이다.

 

app.delete("/youtuber/:id", function (req, res) {
  let { id } = req.params;
  id = parseInt(id);

  let youtuber = youtuberDb.get(id);
  if (youtuber == undefined) {
    res.json({
      message: `id ${id}에 해당되는 유튜버가 없습니다.`,
    });
  } else {
    const channelTitle = youtuber.channelTitle;
    youtuberDb.delete(id);

    res.json({
      message: `${channelTitle}님이 삭제되었습니다.`,
    });
  }
});

 

 

예외 처리까지 진행되었다면, 유튜버 개별 삭제 서비스 구현이 완료되었다!

이제 전체 유튜버 삭제를 구현해보도록 하자.

 

전체 유튜버 삭제

app.delete("/youtubers", function (req, res) {
  youtuberDb.clear();
  res.json({
    message: "전체 유튜버가 초기화되었습니다.",
  });
});

전체 유튜버 삭제는 Map의 clear()함수를 사용하면 Map 전체가 초기화되는 것을 활용하면 아주 간단히 구현할 수 있다.

 

만약 youtuberDb에 유튜버가 한 명도 없을 때를 따로 처리하고 싶다면, 다음과 같이 처리할 수 있을 것이다.

app.delete("/youtubers", function (req, res) {
  if (youtuberDb.size == 0) {
    res.json({
      message: "유튜버가 존재하지 않습니다.",
    });
  } else {
    youtuberDb.clear();
    res.json({
      message: "전체 유튜버가 초기화되었습니다.",
    });
  }
});