ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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/의 오타

     

     

    너무 피곤해서 내이 ㄹ마저 쓰겠다...

    소름이 돋는다.. 그날그날 정리하자..하나도 기억이 안나...

Designed by Tistory.