사고쳤어요
[Node.js] 유튜버 조회 서비스 - 유튜버 삭제(DELETE) 본문
개별 유튜버 삭제
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: "전체 유튜버가 초기화되었습니다.",
});
}
});
'웹 풀스택' 카테고리의 다른 글
[Node.js] 과일 조회 서비스 구현하기 (0) | 2025.02.19 |
---|---|
[Node.js] 유튜버 조회 서비스 - 유튜버 수정(PUT) (0) | 2025.02.18 |
[Node.js] 유튜버 조회 서비스 - 전체 유튜버 조회(forEach) (0) | 2025.02.18 |
[Node.js] 유튜버 조회 서비스 - 새로운 유튜버 추가(POST) (0) | 2025.02.17 |
Postman으로 GET, POST 테스트해보기 (0) | 2025.02.17 |