ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Upload
    Project using node.js/Cloning Youtube 2020. 8. 29. 07:21

    videoRouter.js

      getUpload는 사용자에게 보여지는 editProfile 페이지를 보여주는 랜더링 작업을 한다. 그렇기 때문에 get 방식으로 보낸다.

      postUpload는 사용자가 정보를 수정하고 submit했을 때 정보를 처리하는 로직이다. 정보는 url 파라미터에 노출 되면 안 되고 수정되는 정보는 post 방식으로 제출해야 하기 때문에 post 방식으로 보낸다.

    videoRouter.js

     

    videoController.js

      upload 페이지를 랜더링해서 보여준다.

    getUpload

      사용자로부터 videoFile, title과 description을 받는다. 받은 값을 토대로 Video.js에 만든 videoSchema를 통해 DB에 video를 저장한다.

      req.user.videos.push()는 DB에 있는 video의 작성자에 video.id를 저장한다. 즉 작성자는 자신이 upload한 video들의 id 값을 가지고 있다. 이는 나중에 userDetail에 videoBlock을 추가하게 되는데, user가 자신의 profile이나 타인의 profile을 보게 될 경우 작성자가 upload한 video file lists를 볼 수 있다.

      push()를 한 이후 무조건 req.user.save()를 해줘야 한다. 그렇지 않으면 db에 video id 값이 저장이 되지 않는다.

      db에 저장까지 끝나면 자신이 업로드 한 video를 확인할 수 있도록 바로 videoDetail로 redirect 시킨다. 하지만 아무것도 보이지 않을 것이다. 아직 videoDetail을 작성하지 않았기 때문이다. 다음 글에서 videoDetail을 작성할 것이다.

    postUpload

    getDate()는 createdAt의 값을 구하는 함수다.

    getDate()

    View

    upload.pug

     

    추가 사항

      middlewares.js에 있는 avatar-multer의 이름을 avatar에서 avatarFile로 바꿔줬다.

    middlewares.js

    multer.single()의 paramater는 html form 양식의 name과 똑같아야 한다.

    join.pug
    editProfile.pug

    참고 자료

    소스 코드

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

    videoPlayer.pug  (0) 2020.08.29
    videoDetail  (0) 2020.08.29
    Change password  (0) 2020.08.28
    editProfile  (0) 2020.08.28
    CSP  (0) 2020.08.27

    댓글

Designed by Tistory.