익스프레스에서의 req, res 객체는 http 모듈의 req, res 객체를 확장한 버전이죠. 그래서 기존 http 모듈의 메서드 뿐만 아니라 익스프레스가 추가한 메서드나 속성을 사용할수도 있습니다(익스프레스 메서드가 편해서 http를 잘 사용하지 않게되는 형식) res.writeHead, res.write, res.end 메서드를 그대로 사용하면서도, res.send, res.sendFile 같은 메서드를 사용할 수 있습니다.
익스프레스에서 사용하는 메서드 중 자주 사용하는 것들을 중심으로 살펴보겠습니다.
○ req
- req.app : req 객체를 통해서 app 객체에 접근한다. req.app.get('port')와 같은 방식
- req.body: body-parser 미들웨어가 만드는 요청의 본문을 해석한 객체
- req.cookies: cookie-parser 미들웨어가 만드는 요청의 쿠키를 해석한 객체
- req.ip: 요청의 ip 주소
- req.params: 라우트 파라미터에 대한 정보가 담긴 객체
- req.query: 쿼리스트링에 대한 정보가 담긴 객체
- req.signedCookies: 서명된 쿠키들이 req.cookies 대신 담기는 객체
- req.get(헤더명): 헤더의 값을 가져오고 싶을 때 사용
○ res
- res.app: req.app처럼 res를 통해 app 객체에 접근
- res.cookie(K, V, option): 쿠키를 설정하는 메서드
- res.clearCookie(K, V, option): 쿠키를 제거하는 멧드
- res.end( ): 데이터 없이 응답을 보냄
- res.json(JSON): json 형식 응답을 보냄
- res.locals: 하나의 요청 안에서, 미들웨어 간에 데이터를 전달하고 싶을 때 사용
- res.redirect(주소): 리다이렉트할 주소와 함께 응답을 보냄
- res.render(뷰, 데이터): 템플릿 엔진을 렌더링해서 응답할 때 사용(추후 별도 학습)
- res.send(데이터): 데이터와 함께 응답을 보냄. 문자열, HTML, 버퍼, 객체, 배열 등 한정하지 않음
- res.sendFile(경로): 경로에 위치한 파일을 응답
- res.set(헤더, 값): 응답의 헤더를 설정
- res.status(코드): 응답 시의 HTTP 상태 코드 지정
더불어 res, req의 경우 method chaining(메서드 체이닝)을 지원하는 경우가 많습니다. 형식은 아래와 같죠.
res
.status(201)
.cookie('test', 'test')
.redirect('/admin');
'Programming > Node.js' 카테고리의 다른 글
7. 익스프레스 (4) - 템플릿 엔진 : Pug 2 (0) | 2024.09.18 |
---|---|
7. 익스프레스 (4) - 템플릿 엔진 : Pug 1 (4) | 2024.09.17 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 4 (0) | 2024.09.15 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 3 (0) | 2024.09.12 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 2 (2) | 2024.09.11 |