반응형



◎ multer 설치

multer 는 파일 업로드할떄 파일의 url을 편하게 뽑아주는 middleware다.

▼ 설치

npm install multer

◎ 파일 업로드 예제

upload.html

<input type="file" id="file" name="videoFile" required="" accept="video/*" enctype="multipart/form-data">

router.js

import {uploadVideo} from "../middlewares"; import { postupload } from "Controller"; videoRouter.post("/upload",uploadVideo,postupload); //파일이 업로드될 기본 경로

middlewares.js

const multerVideo = multer({ dest : "uploads/videos/"}); //업로드될 파일의 기본경로 export const uploadVideo = multerVideo.single('videoFile'); //single 는 오직 하나의 파일만 upload 할수 있는걸 의미 // single 안에있는 이름은 html에서 video태그의 name 이다 //multer 가 알아서 dest의 경로에 업로드를 해준다

controller.js

export const postupload = async (req,res) => { const { file : {path} } = req; res.redirect(routes.videoDetail(newVideo.id)); };

▼ 내용

HTML 에서 인코딩타입을 꼭 multipart/form-data 로 맞춰줘야한다. 그리고 FORM 을 보내면 ROUTER에서 받아서 middlewares.js의 함수를 실행후 controller.js의 함수 를 실행한다. 파일 업로드는 middlewares에서 끝나는거라 사실상 컨트롤러함수에서는 리다이렉트말곤 하는게 없다.



반응형

+ Recent posts