프로그래밍

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 }

주의사항

  1. Express 버전 확인
    • Express 4.x 이상에서는 대부분의 기능이 동일하게 동작합니다.
    • 미들웨어 설정 (express.json, express.urlencoded)은 Express 4.x부터 기본 내장입니다.
  2. Validation
    • 파라미터는 검증이 중요합니다. 라이브러리로는 Joi, express-validator 등을 사용할 수 있습니다.
  3. 미들웨어 순서
    • req.body를 읽기 위해 express.json()을 반드시 라우트 이전에 선언하세요.
반응형