-
multerProject using node.js/Cloning Youtube 2020. 8. 24. 09:56
소개
multer는 파일 등을 multipart 형식으로 업로드할 수 있게 도와주는 middleware다. multipart 형식이란 enctype="multipart/form-data"인 폼을 통해 업로드하는 형식을 말한다.
middlewares.js
먼저 middlewares에 다음 코드를 추가한다.
import multer from 'multer'; const multerAvatar = multer({ dest: 'uploads/avatar' }); export const uploadAvatar = multerAvatar.single('avatar');
app.js에는 다음 코드를 추가한다. postJoin은 controller 파트에서 새로 만들 join이다. join은 이제 getJoin과 postJoin으로 나뉠 것이다. 유저의 get 요청을 받고 getJoin은 페이지를 보여주고 postJoin은 유저의 post 요청을 받고 postJoin이 실행되어 회원 가입 기능을 구현한다.
globalRouter.js
uploadAvatar는 사용자로부터 form 형식의 데이터를 받고 그 안에 multipart로 오는 file(avatar)을 처리해서 postJoin이 avatar를 받을 수 있게 파싱한다. 여기서 uploadAvatar는 middleware 역할을 한다. middleware는 app.use()를 사용하는 방법 외에도 route와 마지막 callback 함수 사이에서 사용될 수가 있다.
globalRouter.get(routes.join, getJoin); globalRouter.post(routes.join, uploadAvatar, postJoin);
참고 자료
- 노마드 코더의 유튜브 클론 강의
- Node.js 교과서
소스 코드
https://github.com/zpskek/wetube-v3/commit/9ee464029974ff8d369d9327f1aa1581b2dc817a
'Project using node.js > Cloning Youtube' 카테고리의 다른 글
join - controller (0) 2020.08.24 passport.js (0) 2020.08.24 join - view (0) 2020.08.24 socialLogin.pug (0) 2020.08.24 Model - Comment.js (0) 2020.08.23