node.js enctype="multipart/form-data" 사용 시 req.body 사용법

송유나·2020년 12월 24일
3

메모 계기:

<form> 파일, 텍스트 </form> 다 가져오고싶은데

  • 파일업로드 미들웨어의 필수조건인 <form enctype="multipart/form-data">을 쓰면 req.body를 undefined로 받고

  • 그렇다고 req.body를 받기위해 <form enctype="multipart/form-data">를 안쓰면 express-fileuplode나 multer를 못쓴다.


  1. 일단 bodyparser부터 적용
  • express4이후부터는 bodyparser사용 시 쪼개서 넣어줘야하는 걸 몰라서 좀 헤맸다.
    var bodyParser = reqiure("body-parser")
    var parser = bodyParser.urlencoded({extended:false});
    var fileupload = require("express-fileupload");
    
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({
    	extended: true
    }));
    app.use(express.json());
  1. 라우터에 parser를 추가해주면 동시에 사용 가능
  • router
    app.post('/regi_item_ing', parser, function(req,res){...})

  • ejs
    <form method="POST" action="/regi_item_ing" enctype="multipart/form-data">


이제 body request랑 파일 데이터 다 받을 수 있다.

profile
개발자를 꿈꾸는 햇병아리입니다.

0개의 댓글