node.js

Express 탐구 - 2 <Request, Response>

spare8433 2023. 7. 17. 22:41

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 문자열을 클라이언트에 보냅니다