지난시간,,
https://stepby-yun.tistory.com/180
[mySQL 이미지 저장] BLOB말고 문자열로 하는 이유 (+string문자열 VAR / CHAR 차이)
지난 시간,,, https://stepby-yun.tistory.com/179 formData 이미지데이터 보내고 받기 (react,nodejs,header) 회원가입시 아이디 비번 프로필을 등록하려했다. id password는 넘겨주고 req.body.id로 받았는데 프..
stepby-yun.tistory.com
db에 이미지 저장까지 마쳤다.
formData로 이미지를 받았다.
이미지를 불러오는걸 하기 전에
id와 password도 함께 보내는 걸 하고 싶다.
formData를 쓰면 req.body를 쓸 수 없고id, password는 req.body로 받아와야하니 분리해야하나 싶었는데 역시나 방법이 있었어
참조
<form> 파일, 텍스트 </form> 다 가져오고싶은데
- 파일업로드 미들웨어의 필수조건인 <form enctype="multipart/form-data">을 쓰면 req.body를 undefined로 받고
- 그렇다고 req.body를 받기위해 <form enctype="multipart/form-data">를 안쓰면 express-fileuplode나 multer를 못쓴다.
bodyParser를 쓰면 된다고 함 (팀플할때 무지성으로 썼는데 혼자하니 이렇게 깨닫는구나 역시 왜 쓰는지 생각해봐야함)
파싱이란 HTML 형식으로 사용자가 제출한 데이터에 접근하는 것을 의미합니다. 'GET' 방식으로 폼을 제출하면 '쿼리 문자열'에 데이터가 추가되어 쉽게 접근할 수 있지만 'POST' 방식으로 폼을 제출하면 데이터에 접근하기가 다소 어렵습니다. 보안을 위해 인코딩되었습니다. 데이터를 매우 쉽게 파싱할 수 있는 바디 파서 NPM 방법이 있지만 이 파싱 방법을 처음부터 구현하려고 하면 몇 가지 단계가 필요합니다.
Parsing means accessing the data submitted by user with HTML form. When the form is submitted with the ‘GET’ method, data are appended in ‘query string’ and can access easily but when a form is submitted using the ‘POST’ method, it is somewhat difficult to get access over those data since they are encoded because of security purpose.
There exist a body-parser NPM method that makes it very easy to parse the data but if we try to implement this parsing method from scratch, there’s involve some steps.
근데 드는 의문이
bodyParser쓰면 multer지금 쓰고 있는거 필요없는거 아닌가?
걔도 미들웨어... 둘다 쓰는건가..
어라라 찾아보니까
하지만, express 버전 4.16이상 부터는 'express bodyparser deprecated ( bodyParser는 더이상 지원되지 않습니다.)' 와 같은 문제가 발생한다.
그 이유는, 4.16버전 이상 부터는 express 내부에 bodyParser가 포함되기 때문이다.
라고 한다.
- app.use(express.bodyParser())
+ app.use(express.json())
+ app.use(express.urlencoded())
이렇게 바디파서 대신 밑에 두줄을 쓴다는 건데...뭔지 잘모르겠는데요
일단 코드 추가하고 실행해보니
일단 body-parser 모듈을 사용할 때 아무 옵션을 주지 않는 다면
body-parser deprecated undefined extended: provide extended option 같은 문구가 뜬다.
bodyParser 미들웨어의 여러 옵션 중에 하나로 false 값일 시 node.js에 기본으로 내장된 queryString, true 값일 시 따로 설치가 필요한 npm qs 라이브러리를 사용한다.
queryString 과 qs 라이브러리 둘 다 url 쿼리 스트링을 파싱해주는 같은 맥락에 있으나 qs가 추가적인 보안이 가능한 말 그대로 extended 확장된 형태이다.
기본이 true 값이니 qs 모듈을 설치하지 않는다면 아래와 같이 false 값으로 따로 설정을 해주어야 한다.
오 그렇군요 감사합니다
그래도 아직 req.body는 아무것도 안들어온다
이미지만 들어오고 흠흠
보낼때 id랑 password추가하면 body값만 찍히고
이미지는 안되고...

라는데 왜...안되지..
https://blog.naver.com/bunggl/221699257359
이미지 넣은 것처럼 id랑 password도 formdata에 넣어봄

https://hyc7575.github.io/2017/05/24/2017-05-24-node-js-bodyparserAndMulter/
Node.js(express) - body-parser와 multer
Node.js에서 form양식을 submit을 하기위해 사용되는 body-parser와 multer 미들웨어에 대해서 간단하게 알아보려 합니다. 각 미들웨어의 용도를 짧게 소개하면 body-parser는 라우터와 미들웨어 예제때 언급
hyc7575.github.io
https://kirkim.github.io/javascript/2021/10/16/body_parser.html
[NodeJs] express.json()과 express.urlencoded()의 차이점 알아보기
1️⃣ 사용이유 (1) .json()과 .urlencoded()를 사용하지 않을 때
kirkim.github.io
res.json/res.send차이https://haeguri.github.io/2018/12/30/compare-response-json-send-func/
출처
res.json
++
바디파서써서 req.body랑 이미지 파일 전송하기
formData 객체전송
'노드 node.js' 카테고리의 다른 글
axios 와 fetch 차이 (0) | 2022.05.03 |
---|---|
formdata로 id,password,profile(이미지) mySQL 저장 성공 (0) | 2022.05.02 |
formData 이미지데이터 보내고 받기 (react,nodejs,header) (0) | 2022.04.28 |
회원가입 프로필 이미지 넣고 보이게 하기/닉네임,비밀번호 변경 (0) | 2021.10.08 |
9장 팔로우 끊기 넌적스 if로 버튼교체(follow unfollow button) (0) | 2021.10.05 |