Express는 node.js의 가장 널리알려진 프레임워크로, request와 response를 통해 정보를 주고받는다. response를 보낼 때 주로 사용되는 메서드는 res.send()
, res.json()
, res.end()
이렇게 3가지로, 어떤 상황에서 무엇을 쓰고 각 메서드의 차이점은 무엇인지에 대해 알아보자.
send에 전해진 argument에 따라서 Content-type이 자동적으로 만들어진다.
apt.get("/api/login", (req, res) => {
// 필요 코드작성
});
res.send()는 가장 기본적으로 사용되며 어떤 데이터를 보내는지 파악한 후, 이에 알맞게 Contnet-Type을 지정해준다.
들어있는 데이터가 json이 아닌 것도 json형식으로 바꾸어서 보내준다.
app.get("/api/login", (req, res) => {
res.send({ name:"seoyeon" });
});
res.json()은 자주 쓰이는 메소드를 미리 구현 해놓은것으로, 안에 들어있는 데이터들을 자동을 json 형식으로 바꾸어 보내준다. 즉 content-type 헤더를 application/JSON으로 고정한다. 마지막에 res.send()를 호출한다.
주로 404페이지에 유용하며, 데이터를 제공하지 않고 응답을 종료할 때 쓰인다.
res.end()는 보내줄 데이터가 없을 때 사용한다. 주로 404페이지를 리턴할 때 쓰인다. 이 메소드가 자주 쓰이지는 않는데 res.json()을 쓰나 res.send()를 쓰나 응답을 종료해주는 역할은 각자 하기때문에 굳이 명시적으로 res.end()를 표시할 필요는 없다.
res.end() 그냥 받아들이려고 했는데 서연님 블로그보고 이해했어요! 🙇♀️
감사합니당 🥰