[Node.js] formdata busboy

bbio3o·2021년 5월 24일
0

Node.js

목록 보기
1/2
post-thumbnail

이미지파일을 브라우저에서 서버로 전송하기 위해서는 폼에 enctype="multipart/form-data" 를 추가해서 인코딩 타입을 multipart로 해줘야 합니다.

bodyparser의 req.body 방식을 통해 읽는 것은 불가능하기에 multer에서 활용되는 busboy를 이용해 클라이언트에서 보낸 form-data를 파싱해올 수 있습니다.

npm busboy 참고


// busboy를 이용한 미들웨어
const busboy = new Busboy({ headers: req.headers });
const fields = {};

// busboy will use this callback on every post field
 busboy.on('field', (fieldName, fieldValue) => {
   console.log({fieldName, fieldValue});
   fields[fieldName] = fieldValue;
});

 busboy.on('finish', () => {
   // fields가 req.body 처럼 작동한다.
   const id = fields.id;
   const sel = fields.sel;
   // ... 코드 중략
 }
            
 req.pipe(busboy);

 return next();
profile
그림도 그리는 개발자 🎨👩‍💻

0개의 댓글