본문으로 바로가기

요청 객체(Request)


  • 일반적으로 req나 request와 같은 변수로 명명함. 어차피 콜백에 전달되므로 마음대로 지어도 된다. 여기서는 req로 사용.


  • <주요 메소드>

  • req.params : 이름 붙은 라우트 파라미터를 담는다. ex : app.get(’/:idx’, (req, res) => { res.send(req.params.idx); }); -> 

  • req.query : GET 방식으로 넘어오는 쿼리 스트링 파라미터를 담고 있다.

  • req.body : POST 방식으로 넘어오는 파라미터를 담고있다. HTTP의 BODY 부분에 담겨져있는데, 이 부분을 파싱하기 위해 body-parser와 같은 패키지가 필요하다.




  • 응답 객체(Response)

  • 요청 객체와 마찬가지로 이름 마음대로 지어도 된다. 일반적으로 res나 response로 사용한다. 여기서는 res로 사용


  • <주요 메소드>

  • res.status(code) : HTTP 응답 코드를 설정한다. 응답 코드가 redirect(30x)라면 res.redirect를 쓰는게 낫다.

  • res.send(body), res.send(status, body) : 클라이언트에 응답을 보냄. 상태 코드는 옵션. 기본 콘텐츠 타입은 text/html이므로 text/plain을 보내려면 res.set(‘Content-Type’, ‘text/plain’)을 먼저 호출 해야한다. JSON을 보낼거면 res.json을 쓰자.

  • res.json(json), res.json(status, json) : 클라이언트로 JSON 값을 보냄.

  • res.locals, res.render(view, [locals], callback) : res.locals는 뷰를 렌더링하는 기본 콘텍스트를 포함하는 객체다. res.render는 jade와 같은 템플릿 엔진을 사용하여 뷰를 렌더링한다. 뷰 렌더링 세계는 심오하므로 여기서는 자세히 쓰지 않는다.


  • 출처 : http://luckyyowu.tistory.com/346