deVSner

res.send() VS res.json() VS res.end() ?? 본문

개발 일지/node.js (with express)

res.send() VS res.json() VS res.end() ??

RudeofSun 2020. 5. 9. 17:33

express로 서버를 구축하면서 진짜 많이 헷갈렸던 부분이다

솔직히 지금도 헷갈린다.

머릿 속으로

'아 이번엔 이걸 써야 하나? 아닌가?'

하는 퀘스천 마크와 함께

하나씩 다 해보곤 했다

 

테스트 케이스가 통과되면 ok.....ㅋㅋㅋㅋㅋ

 

한 번 시간을 내서 저거를 알아봐야지 생각했었다.

오늘은

 

https://blog.fullstacktraining.com/res-json-vs-res-send-vs-res-end-in-express/

 

res.json() vs res.send() vs res.end() in Express

In this article we are discussing the differences between the json(), send() and end() methods available as part of Express response object.

blog.fullstacktraining.com

해당 레퍼런스에 대한 글을 읽고

요약 정리를 해 보려고 한다.

 

요약.

JSON정보를 전달이 필요하면 res.json()을 쓴다

res.send()는 ETag를 함께 보내지만 res.end()는 보내지 않는다.

res.send() (res.json())와 res.en()는 둘 다 데이터를 보낼 수 있고 응답(끝났다는)을 보낼 수 있다. 함께 쓸 필요가 없다.

 

 

res.json()에 대해서 설명을 덧붙이자면,

JSON은 string, number, object, array, boolean, null을 지원하는데 fucntion, date, undefined와 같은 타입은 지원하지 않는다. 그래서 res.json()을 사용하면 JSON.stringify()메소드를 통해서 입력된 값이 JSON string형태로 변환이 되고, res.send()를 통해서 응답을 보내고 마친다.

 

res.end()에 대해서 말하자면,

데이터를 제공하지 않고 끝낼 때, 라고 할 수 있겠다.

아마 에러 상황일 때 사용하면 편리할 거 같다.

res.status(404).end();