-
[Wetube] Delete video 구현TodayILearned/Wetube 2020. 9. 16. 00:28
1. 결과물
2. 목표
업로드 된 동영상의 삭제기능을 구현한다.(With mongoDB)
Delete 실행 후 해당 코드가 작동하면 실행되던, 에러가 발생하던 home으로 리다이렉트한다.
3. 코드
4. 배운점
try/catch 구문
try...catch 문은 실행할 코드블럭을 표시하고 예외(exception)가 발생(throw)할 경우의 응답을 지정합니다.
스크립트 내에서 오류 발생 시, 해당 스크립트는 즉시 중단되고, 에러가 발생한다. 이 때 try...catch구문을 이용하면 어느 부분에서 어떻게 중단되었는지 알 수 있기 때문에, 스크립트 작성 시 발생하는 error를 잡아, 에러를 수정하는데 편리하게 한다.
if...else의 에러버전인 듯한 try catch 구문...아래 코드에서, try 구문 내의 코드(=video.js내에 저장된 document를 찾아 해당 비디오를 console.log로 출력 및 home화면을 띄우는 것)
가 에러발생하여 실행이 안될 시,
catch구문 내의 코드(=에러내역을 띄우고, home화면 출력)을 실행시킨다.
export const home = async (req, res) => { try { const videos = await Video.find({}); console.log(videos); res.render("Home", { pageTitle: "home", videos }); } catch (error) { console.log(error); res.render("Home", { pageTitle: "home", videos: [] }); } };
mongoDB findOneAndDelet
DB내에 데이터를 찾아 삭제하는 기능이다. 직관적인 이름, 좋아요.
id로부터 parameter 받기
export const postUpload = async (req, res) => { const { body: { title, description }, file: { path }, } = req; const newVideo = await Video.create({ fileUrl: path, title, description, }); res.redirect(routes.videoDetail(newVideo.id)); };
new video변수 내에 업로드되는 Video의 데이터를 저장한다.
해당 변수들은 routes.videoDetail(newvideo.id)로 ...하 내일 마저 쓰자..
5. 에러 수정
router 입력 시 /video/ 와 video/의 오타
너무 피곤해서 내이 ㄹ마저 쓰겠다...소름이 돋는다.. 그날그날 정리하자..하나도 기억이 안나...'TodayILearned > Wetube' 카테고리의 다른 글
[Wetube] 정규표현식 Search 로직 구성 (0) 2020.09.28 [Wetube] challenge 근황 (0) 2020.09.23 자바스크립트의 비동기식 처리 (0) 2020.09.09 MongoDB_show collections is not working (0) 2020.09.06 Error on DB connection:MongoNetworkError: failed to connect to server (0) 2020.09.06