더북(TheBook)

6.2.7 multer

이번에는 사용법이 다소 어려운 미들웨어를 알아보겠습니다. 이미지, 동영상 등을 비롯한 여러 가지 파일을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어입니다. 멀티파트 형식이란 다음과 같이 enctypemultipart/form-data인 폼을 통해 업로드하는 데이터의 형식을 의미합니다.

다음과 같은 multipart.html이 있다면 멀티파트 형식으로 데이터를 업로드할 수 있습니다. 아직 서버 쪽 라우터를 만들지 않았으므로 예제가 실행되지는 않습니다.

multipart.html

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="image" />
  <input type="text" name="title" />
  <button type="submit">업로드</button>
</form>

멀티파트 형식으로 업로드하는 데이터는 개발자 도구 Network 탭에서 다음과 같이 보입니다. 이미지 하나를 선택하고 title 인풋에 제목이라 적어서 업로드하면 다음과 같은 데이터가 전송됩니다.

▲ 그림 6-8 멀티파트 데이터 형식

이러한 폼을 통해 업로드하는 파일은 body-parser로는 처리할 수 없고 직접 파싱(해석)하기도 어려우므로 multer라는 미들웨어를 따로 사용하면 편리합니다. multer를 설치합니다.

콘솔

$ npm i multer
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.