이후 만든 고양이 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,
});
}
});
...