반응형
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()을 반드시 라우트 이전에 선언하세요.
반응형
'프로그래밍' 카테고리의 다른 글
curl 리다이렉트 따라가기 (301 Moved Permanently) (0) | 2024.12.18 |
---|---|
정규표현식(Regex) 기본문법과 예제 - 이메일, 전화번호 (2) | 2024.12.09 |
Mac Node.js 버전 관리 도구: n vs nvm 비교 및 사용법 (1) | 2024.11.27 |
Swift 시간복잡도 빅오(Big-O) 주요 예제 (0) | 2024.11.22 |
[JavaScript] Date 객체와 UTC/Locale 처리 방법 (0) | 2024.11.16 |