Skip to content

Latest commit

 

History

History
38 lines (22 loc) · 1.83 KB

Multipart form-data 와 Express.md

File metadata and controls

38 lines (22 loc) · 1.83 KB

< 뒤로가기

Multipart form-data 와 Express

  • 작성자 : @unchaptered
  • 작성일자 : 2022-08-18


❓ multipart/form-data 란?

HTTP 프로토콜 에서 대용량(image, audio, video, etc) 파일의 전송을 하기 위해서 파일을 쪼개서 특수한 형태로 인코딩 한 파일 양식 입니다.

ASCII 문자 집합이 형식이므로 공백이 ( + ) 기호로 변환되고 영숫자가 아닌 문자 또는 특수 문자가 16진수( 0-9, AF ) 값으로 변환되어 데이터가 서버로 전송되기 전에 인코딩 프로세스가 수행됩니다.
Geeks for Geeks - Define multipart form data

Text 기반의 통신 프로토콜
Velog - Dev 컴퓨터 상식 - HTTP 프로토콜



😂 Express 와 mutlipart/form-data?

가장 시간이 많이 든 부분이 req.body 안에 FormData 가 담기지 않는 문제였던 것 같습니다.

구글링에 나온 예제 코드에서는 아래 처럼..

const express = require('express');

const app = express();
app.use(express.json());
app.use(express.urlencoded({ extends: false }));

이런 식으로 urlencdoed 를 쓰면 꼼수 처럼 FormData 를 json 안에 다시 넣어준다고 적혀 있었습니다. 하지만, extends 값이 true/false 인지와 무관하게 해당 기능이 작동하지 않았습니다.

그러다가 [email protected] 이후 버전 부터는 해당 꼼수가 사용이 불가능한 것을 알게 되었습니다.

따라서, express.json() 과 같은 파서를 직접적으로 사용하거나 아니면 multer 를 이용해서 바로 업로드를 했어야 했습니다.