유튜브 클로닝 #6-3 CRUD (3) DELETE
🔖 강의 범위: #6.25
Preview
이번 시간까지 CRUD 의 Create, Read, Update 기능까지 만들며 배워보았다.
마지막 기능인 Delete 도 만들어보자.
핵심 개념
Model.findByIdAndDelete( )
https://mongoosejs.com/docs/api/query.html#query_Query-findOneAndDelete
강의 내용
원리는 간단하다. 지금껏 해왔듯 일정 url 로 이동하면 url에 있는 id 로 해당 비디오를 찾아 지우는 것.
mongoose 의 Model.findByIdAndDelete( ) 기능을 이용하면 된다.
step 1. delete 을 누르면 띄울 페이지를 만든다. (template)
// Template
a(href=`${video.id}/delete`) Delete Video →
step 2. 실제 경로를 만들어준다. (router)
// Router
videoRouter.get("/:id([0-9a-f]{24})/delete", deleteVideo );
step 3. 해당 경로로 이동했을 때 실행할 기능을 지정해 준다. (controller)
// Controller
export const deleteVideo = async (req,res) => {
const { id } = req.params;
await Video.findOneAndDelete(id);
return res.redirect("/");
};
끝.
추가 공부 ?
Model.findByIdAndDelete( ) vs.Model.findOneAndRemove() 의 차이
https://www.zerocho.com/category/MongoDB/post/579ecb1fc097d015000404dd
이 둘은 정말 약간의 차이가 있는데 대부분의 상황에서 타당한 이유가 없는 한 delete를 사용하라고 되어 있음.
몽고 db는 롤백이 안되서 remove를 하면 다시 되돌릴 수 없기에 remove보다 delete를 사용하라고 권장하는듯.
요약
- 지금까지 배운 template, router, controller, db 지식을 모두 이용하여 CRUD 의 D(Delete) 기능을 만들어보았다.
- mongoose 의 Model.findByIdAndDelete( ) 을 배웠다.
Author And Source
이 문제에 관하여(유튜브 클로닝 #6-3 CRUD (3) DELETE), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jlee0505/유튜브-클로닝-6-CRUD-3-DELETE
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여(유튜브 클로닝 #6-3 CRUD (3) DELETE), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jlee0505/유튜브-클로닝-6-CRUD-3-DELETE저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)