express.json()
=> parse (JSON.parse +(JSON.stringify)+ res.send)
=> 요청시 들어온 페이로드(json)을 해석해서 send하는 용도
=> 안에 들어있는 데이터들을 자동으로 json 형식으로 바꾸어 보내준다
페이로드를 강제적으로 json 형식의 데이터로 만들고 (json.parse해주고)
그다음 JSON.stringify해서res.send()를 호출해 응답을 한다
응답 Content-Type헤더를 설정하고 application/json으로 값을 준다
payload = "{"name": "kimcording"}" 👉 let response = JSON.parse(payload) 👉 let resultResponse = JSON.stringify(response) 👉 res.send(resultResponse) // 끝
http 모듈에서의
res.json()
다양한 유형의 응답을 전송합니다.
객체 형태의 문자열 페이로드를 받으면 응답을 한다(stiringify 할 필요 없음 이미 문자열이다)
payload = "{"name": "kimcording"}" 👉 res.send(payload) // 끝!
추가
express의
=> res.send()와 res.json()은 별반 다를게 없다
=> res.send()는 추가적으로 stringify를 하고 send도 해야하는데 res.json은 한번에 해결을 하기 때문
결론
json형식을 사용한다면 이미 정의되어 있는 res.json()을 사용하는게 효율적입니다
+
그럼 (send, json)왜 나누어져 있나??
객체가 아닌 경우의 페이로드를 응답하기 위해서!
https://stackoverflow.com/questions/37698782/difference-between-res-send-or-res-json
'서버 기본상식' 카테고리의 다른 글
Status Codes (0) | 2021.09.12 |
---|---|
① (경로)요청 메세지 보내기 by Postman (0) | 2021.09.11 |
HTTP messages (0) | 2021.09.02 |
크롬 에러 해결 (0) | 2021.09.02 |
3) 도메인 , DNS (0) | 2021.09.02 |
댓글