ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • videoDetail
    Project using node.js/Cloning Youtube 2020. 8. 29. 08:00

    routes.js

      videoDetila, editVideo, deleteVideo와 userDetail은 다른 routes와는 다르다. 이들은 고유 id 값에 따라 보여줘야 하는 페이지가 다르기 때문이다. 다른 routes은 key-string이지만 이들은 key(함수명) - value(함수)으로 이루어져 있다. 인자로는 id 값을 받는다.

    riutes.js - video
    routes.js - video

    videoRouter.js

      videoRouter.js를 보면은 첫번째 인자인 router를 주는 값도 다르다. 다른 router는 string을 주지만 videoDetail은 routes.videoDetail()로 함수를 준다. 또한 route를 함수로 주는 router들은 다른 router들보다 항상 맨 밑에 있어야 한다. 그렇지 않으면 다른 router들은 작동하지 않는다.

      예를 들어, videoDetail()이 upload보다 위에 있을 경우, user가 localhost/videos/upload에 접속하게 되면 저 경로 접속하는 것이 아니라 videoDetail로 접속하게 된다. 왜냐하면 JS는 코드를 위에서부터 아래로 읽기 때문에 upload가 :id 값으로 인식한다. routes.js에서 정의한 :id는 변수를 뜻한다.

    videoRouter.js

    videoController.js

       req.params.id는 url 경로에서 :id 값을 가져온다. 해당 id 값은 videoId 값이다. 이 값으로 DB에서 video를 찾는다. 여기서 populate는 video 모델의 객체를 가져오는 것이다. populate('creator')를 하면 videoSchema에서 객체로 정의한 creator를 가져온다.

    videoDetail
    Video.js

    View

    videoDetail.pug

     

    참고 자료

    소스 코드

    https://github.com/zpskek/wetube-v3/commit/6b765766503d1dc910eeb94faa05393985a17ef2

    'Project using node.js > Cloning Youtube' 카테고리의 다른 글

    userDetail  (0) 2020.08.29
    videoPlayer.pug  (0) 2020.08.29
    Upload  (0) 2020.08.29
    Change password  (0) 2020.08.28
    editProfile  (0) 2020.08.28

    댓글

Designed by Tistory.