Multer : 이미지, 동영상 등을 비롯한 여러 가지 파일을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어
멀타파트 형식이란? enctype이 multipart/form-data인 폼을 통해서 업로드하는 데이터의 형식
폼으로 데이터 전송
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="text" name="title" />
<button type="submit">업로드</button>
</form>
이러한 폼을 통한 업로드는 body-parser로 처리 불가해서 직접 파싱도 어려움
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" /> //첨부파일 1개
<input type="text" name="title" />
<button type="submit">업로드</button>
</form>
req.file에 파일 1개
req.body에 타이틀 값
const inputNm = "images"
app.post("/upload", upload.array(inputNm), (req, res) => { })
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="images" multiple /> //같은 태그 첨부파일 여러개
<input type="text" name="title" />
<button type="submit">업로드</button>
</form>
req.files에 파일 어레이
req.body에 타이틀 값
const inputNm =[{name: "image1"}, {name: "image2"}]
app.post("/upload", upload.array(inputNm), (req, res) => { })
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image1" />
<input type="file" name="image2" />
<input type="text" name="title" />
<button type="submit">업로드</button>
</form>
req.files.image1 [] / image2 [] 각각에 어레이안에 파일
req.body에 타이틀 값