분류 전체보기(277)
-
[유튜브 클론코딩] 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 -
[자료구조] 집합
집합(Set 클래스) 개념 집합이란 정렬되지 않은 컬렉션 원소는 반복되지 않음(중복되는 원소가 없음) 수학에 나오는 유한 집합의 개념을 컴퓨터 과학에 적용한 것 수학 시간에 배웠던 집합 집합 - 유일하게 구분되는 원소의 모임 원소는 중괄호 { }로 둘러싼다 예) 자연수의 집합은 1보다 같거나 큰 정수로 구성된다. ( N = {1,2,3,4,5,6,...} ) 공집합 (널집합) - 원솨 하나도 없는 집합 예) 24와 29 사이의 소수의 집합은 공집합임(24와 29 중에는 소수가 없기 때문, 소수: 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 자연수) 공집합은 {} 으로 표시 **즉, 집합은 정렬 개념이 없는 원소가 중복되지 않는 배열이라고 볼 수 있음 집합 만들기(Set 객체의 생성) 자바스크립트에는 ..
2021.03.03