포시코딩

Request, Response 본문

Node.js

Request, Response

포시 2022. 12. 13. 12:52
728x90

정의

Request

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

Response

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

 

서버 모듈

Node.js의 서버 모듈에는 대표적으로 http 모듈과 Express 모듈이 존재한다.

Express 모듈은 http 모듈을 확장하여 제공하는데

Express 모듈은 기존 http 모듈의 메서드도 사용할 수 있지만, Express가 추가 제공하는 메서드나 속성들을 사용할 수 있다.

최근에는 Express의 메서드가 더욱 편리하기에 기존 http 모듈의 메서드는 잘 사용되고 있지 않다.

 

Express 모듈의 req, res 객체

req 객체

  • req.app: req 객체를 통해 app 객체에 접근할 수 있다.
  • req.ip: 요청한 Client의 ip 주소가 담겨 있다.
  • req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체이다.
    • express.json() Middleware를 이용해야 해당 객체를 사용할 수 있다.
  • req.params: 라우터 매개 변수에 대한 정보가 담긴 객체이다.
    • api를 호출할 때 URI에 매개변수를 설정해서 특정 URI 뒤에 들어온 데이터는 전부 params로 간주하여
      출력한다.
  • req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체이다.
  • req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체이다.
    • cookie-parser Middleware를 이용해야 해당 객체를 사용할 수 있다.
  • req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용한다.

 

req.query 사용 예

(app.js)
// ...생략
app.get('/', (req, res) => {
  console.log(req.query);

  res.send('정상적으로 반환되었습니다.');
})
// ...생략

Thunder Client를 통해 Query Parameters에 key값으로 queryKey, value값으로 valuevalue를 준 모습
req.query가 출력되는 모습

 

req.params 사용 예

(app.js)
// ...생략
app.get('/:id', (req, res) => {
  console.log(req.params);

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

:id에 해당하는 부분에 helloworld를 넣었다.
req.params가 출력되는 모습

 

req.body 사용 예

(app.js)
// ...생략
app.use(express.json());  
// request 객체 안에 있는 body를 사용하기 위해 작성. 즉, body-parser 미들웨어를 쓰기 위한 문법

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

  res.send('기본 URI에 POST 메소드가 정상적으로 실행되었습니다.');
})
// ...생략

POST 메소드에 Body 탭 - Json 인 것을 확인
req.body가 출력되는 모습

 

res 객체

  • res.app: res 객체를 통해 app 객체에 접근할 수 있다.
  • res.status(코드): Response에 HTTP 상태 코드를 지정한다. [링크](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): 쿠키를 제거할 때 사용한다.

 

res.json() 사용 예

(app.js)
// ...생략
app.get('/', (req, res) => {
  console.log(req.query);

  const obj = {
    "KeyKey" : "value입니다.", 
    "이름입니다." : "아니요", 
  }
$
  res.json(obj);
})
// ...생략

반환된 JSON을 확인하는 모습

 

res.status() 사용 예

위 코드에 추가로 res.json() 사이에 status()를 넣어

res.status(code).json() 의 형태로 만들어주는 식으로 사용할 수 있다.

(app.js)
// ...생략
app.get('/', (req, res) => {
  console.log(req.query);

  const obj = {
    "KeyKey" : "value입니다.", 
    "이름입니다." : "아니요", 
  }

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

Status에서 아까랑 다르게 400이 찍히고 있는걸 볼 수 있다.

728x90