node.js

res.send(), res.json(), res.end() 궁금해서 찾아봄

아구몬선생 2022. 4. 11. 15:47

res.send

res.send()는 기본적으로 response를 보내는 역할을 한다.

기본적으로 서버에서 response 처리를 할 때 Content-Type을 지정해주어야 한다.

send에 전해진 argument에 따라서 Content-type이 자동적으로 만들어진다. 이게 기본이다.

기능

  • ***res.send()***는 자동으로 utf-8로 인코딩을 해준다

주의점

res.send() 는 res.write()와 res.end()의 통합 방식이기 때문에 한번만 사용가능하다

res.json()

json이 아닌 것도 json 형식으로 바꾸어서 보내준다. 즉 content-type 헤더를 application/JSON 으로 고정한다. 그런데 결국 res.json()도 마지막에 res.send()를 호출

res.json은 자주 쓰이는 메소드를 구현해놓은 것이라고 보면 된다. 즉 안에 들어있는 데이터들을 자동을 json 형식으로 바꾸어 보내준다.

결론적으로 말하면 res.send()와 res.json()은 별반 다를게 없다.

res.end()

문서를 읽어보면 보내줄 데이터가 없을 때 사용한다고 되어있는데, 주로 예를 드는게 404를 리턴해주어야 할 때이다. 그리고 res.json()을 쓰나 res.send()를 쓰나 응답을 종료해주는 역할은 하기 때문에 굳이 명시적으로 표시해줄 필요는 없다.