fields 미들웨어의 인수로 input 태그의 name을 각각 적습니다.

    app.post('/upload',
      upload.fields([{ name: 'image1' }, { name: 'image2' }]),
      (req, res) => {
        console.log(req.files, req.body);
        res.send('ok');
      },
    );

    업로드 결과도 req.files.image1, req.files.image2에 각각 들어 있습니다.

    특수한 경우이지만, 파일을 업로드하지 않고도 멀티파트 형식으로 업로드하는 경우가 있습니다. 그럴 때는 none 미들웨어를 사용합니다.

    multipart.html

    <form id="form" action="/upload" method="post" enctype="multipart/form-data">
      <input type="text" name="title" />
      <button type="submit">업로드</button>
    </form>
    app.post('/upload',  upload.none(),  (req, res) => {
      console.log(req.body);
      res.send('ok');
    });

    파일을 업로드하지 않았으므로 req.body만 존재합니다.

    ▲ 그림 6-9 multer의 미들웨어

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