1. 파일 업로드
- 멀티파트 폼 처리에 주로 쓰이는 패키지는 버스보이, 멀티파티, 포미더블, 멀터 등이 있다. (채신기술 모름)
- 멀티파티와 멀터가 좋다고 하는데 뭐 사용자 나름이다.
- 파일 업로드를 활성화하기 위해서는 반드시 enctype="multipart/form-data" 를 사용해야 한다.
예시
- accept 옵션을 통해 파일의 타입을 제한할 수 있다. (실제로 강제하는 것은 아니다)
- 이제 서버에서 post요청을 처리해보자.
- 멀티파티의 parse 메서드를 사용하여 요청 데이터를 데이터 필드와 파일로 분석한다.
- 이 메서드는 파일을 서버의 임시 디렉터리에 저장하며, 그 정보를 files 배열로 반환한다.
- 라우트 핸들러에 넘길 정보를 알게 되었으니, 라우트 핸들러를 작성한다.
- 주의 : 파일을 저장소에 업로드하는 것이 좋다. 로컬에 계속 저장하다보면 확장성에 문제가 생기기 때문이다.
2. fetch를 통한 파일 업로드
- fetch 를 사용해 업로드하는 것은 브라우저가 처리하도록 맡기는 것과 같다.
- 인코딩을 미들웨어에서 처리하기 때문이다.
클라이언트에서 폼처리 예시
3. 프론트에서 쓰이는 파일 업로드 UI 개선 라이브러리
- 제이쿼리 파일 업로드
- 어피
- 파일 업로드 윗 프리뷰
4. 정리하기
- application/x-www-form-urlencoded : 일반적으로 전통적인 폼 처리에 활용되는 인코딩 방법
- application/json : fetch를 통해 파일이 아닌 데이터를 보낼 때 널리 쓰임
- multipart/form-data : 파일을 전송할 때 사용하는 인코딩
- 다음시간엔 쿠키와 세션!
'더이상 하지 않는 Backend - NodeJS > Node-Express 개론(완)' 카테고리의 다른 글
[O'REILLY] Node & Express - 9장 : 쿠키와 세션 (0) | 2023.04.03 |
---|---|
Node-Express 서버에서 CSRF 공격을 방어하는 방법 (0) | 2023.03.31 |
[O'REILLY] Node & Express - 8장 : 폼 처리 - 2 (0) | 2023.03.30 |
[O'REILLY] Node & Express - 8장 : 폼 처리 (0) | 2023.03.26 |
[O'REILLY] Node & Express - 6장 : 응답 객체 - 2 (0) | 2023.03.26 |
댓글