[express.js] res.json과 res.send의 차이점
res.send와 res.json의 차이점
- res.send와 res.json은 기능상 거의 동일하다.
res.json
- 먼저 obj는 JSON 문자열로 변환
- Content-Type 헤더가 세팅되지 않았을 경우 this(res 객체)에 Content-Type으로 application/json을 세팅
- res.send(body)를 실행
- res.json(object) - res.send(string)
res.send
- body의 타입 체크
- object일 경우 res.json 호출
하지만 res.json에서는 문자열로 변환 후 res.send를 다시 호출 하기 때문에 여기서 한 번 더 호출이 일어난다.
- res.send(object) - res.json(object) - res.send(string)
결론
- 실제 차이를 외부에서 보기에는 차이가 없지만, 내부에서 호출 한 번이 더 일어난다. 그래서 object를 보낼 땐 res.json()을 이용하는 게 더 직관적이고 호출을 줄일 수 있다.