Node.js & TypeScript

req 객체와 res 객체 , res.send 와 res.json 대해서

martinooo 2021. 10. 12. 12:44
728x170

node.js express 프레임워크를 사용하면 기본적인 res객체  , req객체 , express()함수에 대해서 

헷갈리거나 어려움을 느낄때가 있습니다 그래서 Express 공식 홈페이지를 참고하여 정리를 해봤습니다.

 

req 객체 

req.body : POST 정보를 가집니다. 파싱을 위해서 body-parser와 같은 패키지가 필요합니다.

req.query : GET정보를 가집니다. 즉 , URL로 전송된 쿼리 스트링 파라미터를 담고 있습니다. 

req.params : 내가 이름 붙인 라우트 파라미터 정보를 가집니다 

req.headers : HTTP의 Header 정보를 가집니다 

 

res 객체

res.send : 다양한 유형의 응답을 전송(클라한테 보낼때 사용)

res.redirect : 브라우저 리다이렉트 

res.render : 설정된 템플릿 엔진을 사용해서 views에 연결

res.json : JSON 응답을 전송합니다

res.end : 응답 프로세스를 종료합니다

 

res.send / res.json / res.end 

 

1. res.send 

 res.send([body])의 body에는 Buffer, String, Object, Array가 올 수 있습니다. 그리고 response Header에는 Body의 Content-Type이 자동으로 정의됩니다

 

2. res.json

 res.json은 JSON을 응답으로 보냅니다. 여기서 res.send도 Object를 응답으로 보낼 수 있으니까 res.json이 굳이 필요할까 라는 의문이 들 수 있는데, res.json은 JSON 정보를 전달하는데 더 특화된 기능을 가지고 있습니다. 일단 이를 이해하기 위해서는 Object와 JSON은 비슷하게 생기긴 했지만 확연한 차이점을 가지고 있다는 점을 알고계셔야 합니다. 

 

3. res.end

데이터를 제공하지 않고 응답을 끝내려면 res.end()를 사용할수 있습니다.

res.send() , res.json() 같은 형태는 데이터를 보낸 뒤에 자동으로 응답 종료처리를 하기 떄문에 res.end() 굳이 사용할 필요가 없다.

 

express() 함수 express.json() : 들어오는 request를 JSON 데이터로 파싱하며 , body-parser를 기반으로 합니다. express.static() : 정적 파일을 제공하며 , server-static를 기반으로 합니다  express.router() : 새 router 객체를 생성합니다express.urlencoded() : 들어오는 request를 urlencoded 데이터로 파싱하며, body-parser를 기반으로 합니다.

그리드형