저장을 습관화

Request와 Response 본문

공부/JavaScript

Request와 Response

ctrs 2023. 6. 25. 12:51

Request란 클라이언트가 서버에게 전달하려는 정보다 메시지를 담는 객체이다

Reponse란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체이다.

 

express 모듈에서의 req, res 객체 (주요 사용되는 것은 볼드+밑줄)

- req

req.app: req 객체를 통해 app 객체에 접근할 수 있다.

req.ip: 요청한 Client의 IP 주소가 담겨 있다.

req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체

req.params: 라우터 매개 변수에 대한 정보가 담긴 객체

req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체

req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체

req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용한다.

 

-res

res.app: res 객체를 통해 app 객체에 접근할 수 있다.

res.status(코드): Reponse에 HTTP 상태 코드를 지정한다.

res.send(데이터): 데이터를 포함하여 Response를 전달한다.

res.json(JSON): JSON 형식으로 Response를 전달한다.

res.end(): 데이터 없이 Response를 전달한다.

res.direct(주소): 리다이렉트할 주소와 함께 Response를 전달한다.

res.cookie(Key, Value, Option): 쿠키를 설정할 때 사용한다.

res.clearCookie(Key, Value, Option): 쿠키를 제거할 때 사용한다.

 

 

req 예시  1. req.query

1. app.js 작성

const express = require("express");
const app = express();
const port = 3000;

app.use(express.json());

app.get("/", (req, res) => {
  console.log(req.query);
  res.send("정상적으로 반환되었습니다.");
});


app.listen(port, () => {
  console.log(port, "포트로 서버가 열렸어요");
});

 

2. express 실행

 

3. query string 전달

 

4. 전달 확인

 

 

req 예시 2. req.params

1. app.js 작성

const express = require("express");
const app = express();
const port = 3000;

app.use(express.json());

app.get("/:id", (req, res) => {
  console.log(req.params);

  res.send(":id URI에 정상적으로 반환되었습니다.");
});

app.listen(port, () => {
  console.log(port, "포트로 서버가 열렸어요");
});

 

2. express 실행

node app.js

 

3.  parameter 전달

 

4. 전달 확인

 

req 예시 3. req.body

1. app.js 작성

const express = require("express");
const app = express();
const port = 3000;

app.use(express.json());

app.post("/", (req, res) => {
  console.log(req.body);

  res.send("기본 URI에 POST 메소드가 정상적으로 싱행되었습니다.");
});

app.listen(port, () => {
  console.log(port, "포트로 서버가 열렸어요");
});

 

2. express 실행

node app.js

 

3. JSON 형태의 body 전달(POST)

 

4. 전달 확인

 

 

res 예시 1. res.json()

1. app.js 작성

const express = require("express");
const app = express();
const port = 3000;

app.use(express.json());

app.get("/", (req, res) => {
  console.log(req.query);

  const obj = {
    keyKey: "valueValue",
    "이름입니다.": "이름일까요?",
  };

  res.json(obj);
  
// 아래와 같이 res.json() 안에 직접 작성해도 동일하게 작동한다.
//  res.json({
//  	keyKey: "valueValue",
//	    "이름입니다.": "이름일까요?",
//  });
  
});

app.listen(port, () => {
  console.log(port, "포트로 서버가 열렸어요");
});

 

2. express 실행

node app.js

 

3. 호출

 

4. 호출 확인

 

- 추가,  HTTP 상태 코드를 임의로 변경하고 싶다면?

아래와 같이 status() 옵션을 추가하여 정상적으로 실행되었더라도 

사전에 설정한 상태 코드를 받을 수 있다.

...(생략)...
res.status(400).json(obj);
...(생략)...

 

 

[참조]

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org