본문 바로가기
node.js

Express 탐구 - 2 <Request, Response>

by spare8433 2023. 7. 17.

Request


req 객체는 HTTP 요청을 나타내며 요청 쿼리 문자열, 매개 변수, 본문, HTTP 헤더 등에 대한 속성을 나타냄


객체 req는 Node 자체 요청 객체의 향상된 버전이며 모든 기본 제공 필드 및 메서드를 지원

속성

req.app

Express 애플리케이션의 인스턴스에 대한 참조


req.baseUrl

라우터 인스턴스가 마운트된 URL 경로 app.mountpath 과 유사


req.body

키-값 의 형태의 request body 데이터를 의미, 기본값은 undefined, req.body 는 상황마다 다르기 때문에 신뢰할 수 없다.


req.cookies

cookie-parser 를 사용할 경우 쿠키 객체를 나타냄 기본 값은 {}


req.fresh

클라이언트의 캐시가 최신 상태인지를 판단 여부 유효한 경우 true 리턴 아닌 경우 false 리턴


req.stale

req.fresh 랑 반대


req.hostname

HTTP header 에 있는 hostname 내용 반환


req.ip

ip 반환


req.method

HTTP 메서드 이름 반환


req.originalUrl

전체 url 반환


req.params

파라미터 반환


req.path

path 반환


req.protocol

프로토콜 반환 ex) http


req.query

쿼리반환


req.res

res 의 참조


req.route

route 관련 객체 반환


req.subdomains

서브 도메인 배열 반환


req.xhr

클라이언트 라이브러리에서 요청을 발행했음을 나타내는 "XMLHttpRequest" 인지 여부



메서드

req.accepts(type) [type: string | boolean]

요청의 HTTP 헤더 필드를 기반으로 지정된 content type이 허용되는지 확인


req.is(type)

요청의 HTTP 헤더 필드를 기반으로 지정된 content type이 일치하는지 확인


req.acceptsCharsets(charset [, ...])

req.acceptsEncodings(encoding [, ...])

req.acceptsLanguages(lang [, ...])


req.get(field)

지정된 HTTP 요청 헤더 필드를 반환합니다


req.param(name [, defaultValue])

param 반환


req.range(size[, options])

요청한 리소스의 일부 범위를 지정 원하는 범위의 데이터를 요청



Response

Express 앱이 HTTP 요청을 받을 때 보내는 HTTP 응답을 나타낸다.


속성

res 객체는 Express 앱이 HTTP 요청을 받을 때 보내는 HTTP 응답을 나타냅니다.

res.app

Express 애플리케이션의 인스턴스에 대한 참조


res.headersSent

앱이 응답을 위해 HTTP 헤더를 보냈는지 여부


res.locals

응답과 관련된 데이터를 저장하고 템플릿 엔진이나 다음 미들웨어에서 사용할 수 있으며 단일 요청-응답 주기 내에서 사용할 수 있기 때문에 로컬 변수를 유지하려면 대신 app.locals를 사용하는 것이 적절하다.


메서드

기본 기능

res.req

req 객체의 참조를 보유


res.get(field)

HTTP 응답 헤더를 반환




1. 헤더 설정 관련

res.append(field [, value])

HTTP response 헤더 필드에 변수를 추가하며 헤더가 아직 설정되지 않은 경우 지정된 값으로 헤더를 생성


res.attachment([filename])

HTTP 응답 헤더에 "Content-Disposition"을 설정하여 파일 다운로드를 유발하는 역할


res.type(type)

Content-Type HTTP 헤더를 설정


res.vary(field)

응답 헤더 에 Vary 필드를 추가


res.cookie(name, value [, options])

쿠키 name 및 value 를 설정하는 메서드


res.clearCookie(name [, options])

쿠키를 지우는 메서드


res.download(path [, filename] [, options] [, fn])

파일을 다운로드하기 위한 천체적인 HTTP 응답을 구성


res.format(object)

"Accept" 헤더에 따라 다른 응답 형식을 선택적으로 보낼 수 있는 메서드


res.links(links)

"Link" 헤더를 추가


res.location(path)

path 헤더를 추가


2. 응답 관련

res.end([data] [, encoding])

응답 프로세스를 종료, 데이터 없이 빠르게 응답을 종료할 때 사용


res.send([body])

HTTP 응답을 보냅니다.


res.redirect([status,] path)

라이언트를 다른 URL로 바로 redirect 하는 역할을 하며, 응답을 생성합니다.


res.json([body])

JSON 응답을 보냄


res.jsonp([body])

JSONP는 Same-Origin Policy로 인해 발생하는 제한을 우회하기 위해 사용되는 기술
JSONP를 사용하면 다른 도메인의 API에서 데이터를 요청하고 응답을 받을 수 있다.


res.sendFile(path [, options] [, fn])

파일을 응답으로 전송 res.download 의 내용과 흡사하며 바로 응답하는지 여부가 차이점이다.


res.sendStatus(statusCode)

HTTP 코드 응답


res.render(view [, locals] [, callback])

view를 렌더링하고 렌더링된 HTML 문자열을 클라이언트에 보냅니다

'node.js' 카테고리의 다른 글

Express 탐구 - 1  (0) 2023.07.11
Node.js 개발 및 배포 환경 구성에 유용한 패키지  (1) 2023.06.19
[ dotenv ] 환경 변수 사용 패키지  (0) 2022.02.14