express req, res
express에서의 req, res 객체는 http 모듈의 req, res 객체를 확장한 것이다. 따라서 기존 http 모듈의 메소드를 그대로 사용할 수 있고 express에서 추가된 메서드나 속성을 사용할 수도 있다.
Node.js의 http 모듈에서 사용했던 res.write, res.writeHead, res.end 메서드들을 그대로 사용할 수도 있고, res.send, res.sendFile 메서드를 사용할 수 있다.
express의 req, res 객체는 다양한 속성을 가지고 있다. 가장 많이 쓰이는 속성과 메서드들은 다음과 같다. 만약 프로젝트를 진행하면서 더 많은 속성과 메서드가 필요하다면 공식문서를 참조해야 한다.
메서드 체이닝
req, res 객체의 메서드는 메서드 체이닝을 제공하기 때문에 코드양을 획기적으로 줄일 수 있다.
res.status(200)
.cookie('test', 'test')
.render('view.pug')
req 객체
- req.app : req 객체를 통해 app 객체에 접근이 가능하다. req.app.get('port')처럼 사용할 수 있다.
- req.body : body-parser 미들웨어가 만드는 요청의 본문을 해석한 객체다. fetch 요청이 들어오는 경우 req.body 내부에 payload를 확인할 수 있다.
- req.cookie : cookie-parser 미들웨어가 만드는 요청의 쿠키를 해석한 정보를 담고 있는 객체다.
- req.ip : 요청한 클라이언트의 IP 정보를 담고 있다.
- req.params : 라우트 매개변수('/user/:id')에 담긴 정보를 담고 있는 객체.
- req.query : 쿼리스트링에 대한 정보를 담고 있는 객체
- req.signedCookies : 서명된 쿠키들은 req.cookie 대신 이곳에 담긴다.
- req.get(헤더 이름) : 헤더 값을 가져올 때 사용하는 메소드다.
res 객체
- res.app : res 객체를 통해 app 객체에 접근이 가능하다.
- res.cookie(키 , 값, 옵션) : 쿠키를 설정하는 메서드
- res.clearCookie(키, 값, 옵션) : 쿠키를 제거하는 메서드
- res.end() : 데이터 없이 응답을 보내는 메서드
- res.json(JSON) : JSON 형식으로 변환한 데이터를 전송한다.
- res.redirect(주소) : 리다이렉트할 주소와 함께 응답을 전송한다.
- res.render(View, 데이터) : 템플릿 엔진(View)을 렌더링 해서 응답할 때 사용한다.
- res.send(데이터) : 데이터와 함께 응답을 전송한다. 데이터는 문자열, HTML, 버퍼, 객체, 배열이 담길 수 있다.
- res.sendFile(경로) : 해당 경로에 위치한 파일을 전송한다.
- res.set(헤더, 값) : 응답의 헤더를 설정
- res.status(코드) : 응답 시 HTTP 상태 코드를 설정한다.
'Programming' 카테고리의 다른 글
[Database] 트랜잭션이란? (ACID 데이터베이스 속성) (0) | 2022.05.30 |
---|---|
[Database] SQL이란? (0) | 2022.05.30 |
[Server] express Router 분리 사용법 (0) | 2022.05.27 |
[Server] express 서버 시작하는 방법, 미들웨어 종류 (0) | 2022.05.27 |
[Programming] Content-Type과 Accept Header 차이점 (0) | 2022.05.26 |
댓글