Node.js에서 request
와 response
객체 깊게 이해하기
1. req
객체
클라이언트가 서버에 보낸 HTTP 요청의 모든 정보를 담고 있는 객체입니다. 클라이언트가 어떠한 방식으로 요청했는지에 대한 데이터와 메서드가 구현되어 있습니다.
주요 속성과 메서드
req.app
설명: req
객체를 통해 Express.js의 app
객체에 접근할 수 있습니다.
사용 예:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log(req.app === app); // true
});
req.ip
설명: 요청한 클라이언트의 IP 주소입니다.
사용 예:
app.get('/', (req, res) => {
console.log(`Client IP: ${req.ip}`);
});
req.body
설명: POST
나 PUT
메서드로 전달된 요청 본문이 담긴 객체입니다.
주의사항: express.json()
미들웨어를 사용해야 이 객체를 사용할 수 있습니다.
사용 예:
app.use(express.json());
app.post('/data', (req, res) => {
console.log(req.body); // { key: 'value' }
});
req.params
설명: URL 경로의 동적 파라미터에 대한 정보가 담긴 객체입니다.
사용 예:
app.get('/users/:id', (req, res) => {
console.log(`User ID: ${req.params.id}`);
});
2. res
객체
서버가 클라이언트에게 보낼 HTTP 응답을 구성하는 데 사용되는 객체입니다.
주요 메서드
res.send()
설명: 응답 본문을 설정하고 응답을 보냅니다.
사용 예:
app.get('/', (req, res) => {
res.send('안녕하세요!');
});
res.json()
설명: JSON 형식으로 응답을 보냅니다.
사용 예:
app.get('/json', (req, res) => {
res.json({ message: '성공' });
});
res.status()
설명: HTTP 상태 코드를 설정합니다.
사용 예:
app.get('/notfound', (req, res) => {
res.status(404).send('Not Found');
});