Node 강의/입문

1-14 Express.js의 req, res 객체

kagan-draca 2024. 9. 2. 11:34

1. Express.js의 req 객체 살펴보기

 

- req.app : req 객체를 통해 Express.js의 app 객체에 접근할 수 있습니다.

 

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

 

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

                   express.json() middleware를 이용하여야 해당 객체를 사용할 수 있습니다.

 

- req.params : 라우터 매개 변수(Path Params)에 대한 정보가 담긴 객체입니다.

 

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

 

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

                        cookie-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.

 

- req.get(Header) : 해더에 저장된 값을 가져오고 싶을 때 사용합니다.

 

2. Express.js의 res(Server → Client) 객체 살펴보기

 

- res.app : res 객체를 통해 Express.js의 app 객체에 접근할 수 있습니다.

 

- res.status(코드) : Response에 HTTP 상태 코드를 지정합니다.

 

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

 

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

 

- res.end() : 데이터 없이 Response를 전달합니다.

 

- res.redirect(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.

 

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

 

- res.clearCookie(Key, Value, Option) 쿠키를 제거할 때 사용합니다.

 

3. Express.js의 Response 파헤쳐보기

 

서버에서 클라이언트에게 보내는 메시지를 응답(Response)이라고 부릅니다.

status는 서버가 클라이언트에게 응답(Response)를 보낼 때 Http 상태 코드를 전송하는 것을

나타내며, send, json은 서버가 클라이언트에게 응답(Response) 데이터를 전송하는 방법

나열한 것 입니다.

 

 

1) res.status(상태코드)

 

app.post('/', (req, res)=>{

  return res.status(201).json({key : value});

})

 

서버 클라이언트에게 응답(Response)을 보냈을 때, 상태 코드를 전달할 때 사용됩니다.

 

Http 상태 코드는 HTTP 요청이 어떠한 상태로 처리 되었고, 완료되었는지를 나타냅니다.

ex) 201무언가 생성이 완료 됐다, 200요청이 성공적, 404는 요청한 리소스가 서버에 존재하지 않음

 

Express에서 상태 코드를 명시하지 않으면, 상태 코드는 200으로 자동 전달됩니다. 

 

 

2) res.json(JSON), res.send(데이터)

 

app.post('/', (req, res)=>{

  return res.status(201).json({key : value});

})

 

서버가 클라이언트에게 응답(Response)을 보냈을 때, 데이터를 전달할 때 사용합니다.

 

res.json() 메서드는 JSON 형식의 데이터만 보낼 수 있습니다.

Response Header의 Content-Type이 'application/json'으로 설정됩니다.

 

res.send() 메서드는 다양한 유형의 데이터를 보낼 수 있습니다.

Response Header의 Content-Type을 데이터 유형에 따라 다르게 설정할 수 있습니다.

→ Content-Type은 서버가 클라이언트에게 전달하는 데이터의 타입을 지정할 때 사용됩니다.

 

 

4. Express.js의 Request 파헤쳐보기

 

클라이언트에서 서버로 보내는 메시지를 요청(Reuquest)이라고 부릅니다.

body, params, query는 클라이언트가 서버에 요청(Request)보낼 때

데이터를 어떤 방식으로 전송하는지에 대한 여러가지 방법들을 나열한 것 입니다.

 

 

1) req.body : (Body)

 

app.post('/', (req, res)=>{
  const ReqBody = req.body;

  return res.status(201).json({});
})

 

클라이언트가 요청(Request)을 보냈을 때, Body에 데이터를 삽입하였을 때 사용됩니다.

 

req.body 를 사용하기 위해서 는 express.json() 미들웨어를 사용해야 합니다.

 

key-value의 데이터 형식을 가지고 있으며, 대표적으로 JSON 형태를 띄고 있습니다.

 

BodyQuery String, Path Variable(params)과 다르게, URL만을 가지고

어떤 데이터를 전달하였는지 확인할 수 없는 특징을 가지고 있습니다.

 

데이터를 생성하거나 수정이 필요한 데이터의 전달을 위해 사용됩니다.

ex) 사용자의 ID, 사용자의  Password, 게시글 제목

 

POST, PUT과 같은 Http method에서 사용됩니다.

 

 

2) req.query : (Query String)

 

app.get('/', (req,res)=>{
  const ReqQuery = req.query;

  return res.status(200).json({});
})

 

클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 Key-Value를 삽입하여 데이터를 전달합니다.

 

URL의 마지막 ? 기호를 이용해 Query String을 사용할 수 있습니다.

ex) https://sparta.com?name=이름&&age=age

 

특정 콘텐츠의 위치를 표시하거나 웹 페이지에 특정한 옵션을 설정할 때 사용합니다.

ex) 게시글의 정렬, 특정 날짜의 게시글만 출력하는 옵션 설정 등

 

주로 서버의 리소스를 필터링하거나 정렬하는 데 사용됩니다.

ex) https://sparta.com/posts?sort=desc&page=3&limit=20

 

GET과 같은 Http method에서 사용됩니다.

 

 

3) req.params: (Path Variable)

 

app.get("/:name", (req, res) => {
  const { name } = req.params;

  return res.status(200).json({});
});

 

클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 데이터를 삽입하여 전달합니다.

 

URL 특정 경로를 매개 변수로써 사용합니다.

 

특정 게시글을 선택하거나 명확한 리소스를 지정해야할 때 사용합니다.

ex) 게시글 상세 정보 조회, 사용자의 상세 정보 조회

 

'Node 강의 > 입문' 카테고리의 다른 글

2-1 데이터베이스와 MongoDB  (0) 2024.09.02
1-15 REST API 개발하기  (0) 2024.09.02
1-13 Request와 Response  (0) 2024.09.01
1-12 API Client 학습  (0) 2024.09.01
1-11 Roution 이해 및 Router 학습  (0) 2024.09.01