Express res.send( ), res.json( ), res.end( )

한서연·2022년 3월 14일
0
post-thumbnail

Express는 node.js의 가장 널리알려진 프레임워크로, request와 response를 통해 정보를 주고받는다. response를 보낼 때 주로 사용되는 메서드는 res.send(), res.json(), res.end() 이렇게 3가지로, 어떤 상황에서 무엇을 쓰고 각 메서드의 차이점은 무엇인지에 대해 알아보자.


res.send()

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

apt.get("/api/login", (req, res) => {
	// 필요 코드작성
}); 

res.send()는 가장 기본적으로 사용되며 어떤 데이터를 보내는지 파악한 후, 이에 알맞게 Contnet-Type을 지정해준다.



res.json()

들어있는 데이터가 json이 아닌 것도 json형식으로 바꾸어서 보내준다.

app.get("/api/login", (req, res) => {
  res.send({ name:"seoyeon" });
});

res.json()은 자주 쓰이는 메소드를 미리 구현 해놓은것으로, 안에 들어있는 데이터들을 자동을 json 형식으로 바꾸어 보내준다. 즉 content-type 헤더를 application/JSON으로 고정한다. 마지막에 res.send()를 호출한다.



res.end()

주로 404페이지에 유용하며, 데이터를 제공하지 않고 응답을 종료할 때 쓰인다.

res.end()는 보내줄 데이터가 없을 때 사용한다. 주로 404페이지를 리턴할 때 쓰인다. 이 메소드가 자주 쓰이지는 않는데 res.json()을 쓰나 res.send()를 쓰나 응답을 종료해주는 역할은 각자 하기때문에 굳이 명시적으로 res.end()를 표시할 필요는 없다.

1개의 댓글

comment-user-thumbnail
2022년 3월 14일

res.end() 그냥 받아들이려고 했는데 서연님 블로그보고 이해했어요! 🙇‍♀️
감사합니당 🥰

답글 달기