Projects/유튜브 클론코딩(73)
-
[유튜브 클론코딩] 3.12 Searching Videos
3.12 Searching Videos 정규표현식을 사용하여 Search 구현하기 이제 검색 화면을 수정할 것이다. 정규 표현식 이라는 것이 있다. 이것은 string으로부터 무언가를 가져오는 것이다. 우리가 정규 표현식으로 하고 싶은건 handsome을 찾던 Handsome을 찾던 대소문자를 구별하지 않고 찾도록 하면서 내가 찾는 단어가 포함된 모든 걸 찾는 것이다. export const search = async(req, res) => { const {query: { term: searchingBy }} = req; let videos = []; try{ videos = await Video.find({title: {$regex: searchingBy, $options: "i"}}); }catch(..
2021.03.09 -
[유튜브 클론코딩] 3.11 Installing ESLint
3.11 Installing ESLint ESLint의 필요성? 일단 지금 search를 해보면 videos가 정의되어있지 않다고 뜬다. export const search = (req, res) => { const {query: { term: searchingBy }} = req; // const searchingBy = req.query.term 과 같은 코드 res.render("search", {pageTitle: "Search", searchingBy, videos}); // searchingBy = searchingBy 인 경우 하나로 줄여쓸 수 있음 }; ↑ videoController.js 여기 나는 videos라는 variable 이름을 가지고 있지만 videos는 variable로나 g..
2021.03.04 -
[유튜브 클론코딩] 3.10 Deleting a Video
3.10 Deleting a Video 이번시간에는 비디오를 삭제하는 것을 해볼 것이다. 비디오 추가(upload), 비디오 수정(editVideo), 비디오 시청(videoDetail)은 했으니 비디오 삭제(deleteVideo)를 할 시간이다. 비디오 삭제 만들기(deleteVideo) 누군가 비디오 삭제를 누른다면 URL로 가서 이 부분의 URL을 가져와서 해당하는 비디오를 삭제할 것이다. 그러기 위해서는 URL에서 id를 받아와야 하므로 routes.js에서 deleteVideo도 함수 형식으로 바꾸어 주어야 한다. deleteVideo: (id) => { if(id){ return `/videos/${id}/delete`; }else{ return DELETE_VIDEO; } } ↑ routes..
2021.03.04 -
[유튜브 클론코딩] 3.9 Editing a Video
3.9 Editing a Video 이번 시간에는 비디오 수정할 수 있는 버튼 만들기(edit video)를 할 것이다. 비디오를 수정할 수 있는 버튼을 만들어서, 일단은 모든 사람이 수정할 수 있도록 하고 나중에 유저부분에서 해당 버튼은 비디오를 업로드한 사람에게만 보일 수 있도록 수정할 것이다. routes.js에서 editVideo도 함수 형식으로 바꾸기 editVideo: (id) => { if(id){ return `/videos/${id}/edit` }else{ return EDIT_VIDEO; } }, ↑ routes.js routes.js로 가서 editVideo 부분을 바꾼다. editVideo도 id를 받아와야 하기 때문에 함수 형식으로 바꾸는 것이다. videoDetail.pug에서 ..
2021.03.04 -
[유튜브 클론코딩] 3.8 Getting Video by ID
3.8 Getting Video by ID 이번 시간에는 비디오 링크를 클릭하면 해당 비디오의 상세정보 페이지로 이동하게 하는 것을 할 것이다. (즉 videoDetail 화면을 수정할 것) videoDetail 수정하기(controller) 비디오 링크를 클릭하면 해당 비디오의 상세정보 페이지로 이동하도록 하기 위해서는 해당 비디오의 id를 받아와야 한다. 이것은 req.params로 받을 수 있다. search에 req.query에서 term을 받은 것처럼 video id를 받는 것이다. export const videoDetail = (req, res) => { console.log(req.params); res.render("videoDetail", {pageTitle: "Video Detail"..
2021.03.04 -
[유튜브 클론코딩] 3.7 Uploading and Creating a Video part.2
3.7 Uploading and Creating a Video part.2 home에서 나오지 않는 video들을 나오게 하기 이제 Video를 Upload 할 수 있다. 하지만 home으로 가면 video들이 나타나지 않는다. 왜냐하면 link가 망가졌기 때문이다. 우선 videos/폴더를 지우고 다음으로 middleware에 video/가 아닌 uploads/videos/에 업로드하게 수정할 것이다. const multerVideo = multer({dest: "uploads/videos/"}); 이것을 /uploads/videos/라고 안쓰는게 중요하다. 왜냐면 그렇게 쓰면 이미 존재하는 폴더라고 생각할수 있기 때문이다. 일단 존재하는 것을 지우고 새로 하기 위해서 다음과 같이 한다. console..
2021.03.04