프로그래밍
Express request query, path, body 예제
ohlee52
2024. 12. 1. 15:57
반응형
1. Path Parameters (req.params)
- Path parameters는 URL 경로에서 특정 값을 동적으로 받는 경우 사용됩니다.
- 라우트에서 :paramName으로 지정된 값은 req.params에 저장됩니다.
const express = require('express');
const app = express();
app.get('/user/:id', (req, res) => {
const userId = req.params.id; // Path parameter
res.send(`User ID: ${userId}`);
});
app.listen(3000, () => { console.log('Server running on port 3000'); });
2. Query Parameters (req.query)
- Query parameters는 URL에 붙는 ?key=value 형태의 파라미터를 처리합니다.
- Express에서는 자동으로 req.query 객체에 매핑됩니다.
app.get('/search', (req, res) => {
const { keyword, page } = req.query; // Query parameters
res.send(`Keyword: ${keyword}, Page: ${page}`);
});
// URL Example:
// http://localhost:3000/search?keyword=express&page=2
3. Request Body Parameters (req.body)
- Body parameters는 POST, PUT 요청에서 사용되며, 요청 본문에 포함됩니다.
- Express 4.x 이상에서는 body-parser가 내장되어 있어 별도 설치가 필요하지 않지만, 반드시 express.json() 또는 express.urlencoded() 미들웨어를 설정해야 합니다.
app.use(express.json()); // JSON 파싱 미들웨어
app.use(express.urlencoded({ extended: true })); // URL-encoded 파싱 미들웨어
app.post('/login', (req, res) => {
const { username, password } = req.body; // Body parameters
res.send(`Username: ${username}, Password: ${password}`);
});
// Request Example:
// POST /login Content-Type: application/json { "username": "john_doe", "password": "12345" }
반응형
4. 전체 요청 정보 예제
아래는 req.params, req.query, req.body를 동시에 사용하는 예제입니다.
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.post('/product/:id', (req, res) => {
const productId = req.params.id; // Path parameter
const { sortBy } = req.query; // Query parameter
const { name, price } = req.body; // Body parameters
res.send(`Product ID: ${productId}, Sort By: ${sortBy}, Name: ${name}, Price: ${price}`);
});
// Request Example:
// URL: http://localhost:3000/product/123?sortBy=price
// Body: { "name": "Laptop", "price": 1500 }
주의사항
- Express 버전 확인
- Express 4.x 이상에서는 대부분의 기능이 동일하게 동작합니다.
- 미들웨어 설정 (express.json, express.urlencoded)은 Express 4.x부터 기본 내장입니다.
- Validation
- 파라미터는 검증이 중요합니다. 라이브러리로는 Joi, express-validator 등을 사용할 수 있습니다.
- 미들웨어 순서
- req.body를 읽기 위해 express.json()을 반드시 라우트 이전에 선언하세요.
반응형