스마트웹앱콘텐츠전문가/node.js

Node.js와 Express.js로 쿼리 파라미터 활용법 배우기

9D4U 2025. 2. 25. 17:10
728x90
반응형

Express.js에서 쿼리 파라미터 처리하기: req.query 사용법

 

Express.js는 Node.js에서 웹 서버를 쉽게 구축할 수 있도록 돕는 프레임워크입니다. Express를 사용하면 클라이언트의 요청에 따라 다양한 작업을 처리하고, 그에 맞는 리스폰스를 반환할 수 있습니다. 그 중에서도 **쿼리 파라미터(query parameter)**를 처리하는 방법은 매우 중요한 개념입니다. 클라이언트가 서버에 요청을 보낼 때 URL에 추가적인 정보를 담아 보낼 수 있는데, 이 정보를 Express에서 어떻게 처리할 수 있는지 알아보겠습니다.

 

 

 


1. 쿼리 파라미터란?

 

쿼리 파라미터는 URL에서 ? 뒤에 이어지는 정보입니다. 주로 웹 애플리케이션에서 필터링, 정렬, 검색 등을 위해 사용되며, 여러 개의 파라미터는 & 기호로 구분됩니다. 예를 들어, 다음과 같은 URL이 있을 수 있습니다:

 

/api/clothes?orderBy=popularity&category=men

이 URL에서 orderBy=popularity와 category=men은 쿼리 파라미터입니다. orderBy와 category는 파라미터의 이름이고, 각각의 값인 popularity와 men은 파라미터의 값입니다. 클라이언트는 URL을 통해 서버에 요청을 보내면서 이 값을 전달하고, 서버는 이 값을 바탕으로 적절한 처리를 하게 됩니다.

 

 


2. Express.js에서 쿼리 파라미터 다루기

 

Express.js에서는 클라이언트가 보내는 쿼리 파라미터를 req.query 객체를 통해 쉽게 다룰 수 있습니다. req.query는 URL의 쿼리 문자열을 객체 형태로 파싱하여 반환해 주며, 클라이언트가 보낸 파라미터 값을 손쉽게 접근할 수 있게 해줍니다.

 

예시 코드

 

다음은 간단한 Express.js 서버 코드입니다. 이 코드는 /api/clothes 경로에 대한 GET 요청을 처리하며, 쿼리 파라미터를 받아서 그 값을 콘솔에 출력합니다.

 

const express = require('express');
const app = express();

app.get('/api/clothes', (req, res) => {
  const { orderBy, category } = req.query;
  console.log(orderBy);  // 'popularity' 출력
  console.log(category); // 'men' 출력
  res.send('클라이언트의 요청을 처리합니다.');
});

app.listen(3000, () => {
  console.log('서버가 3000번 포트에서 실행 중입니다.');
});

위 코드에서 중요한 부분은 req.query입니다. 클라이언트가 요청한 URL에 포함된 쿼리 파라미터들을 req.query 객체로 가져올 수 있습니다. 예를 들어, URL이 /api/clothes?orderBy=popularity&category=men이라면, req.query는 다음과 같은 객체로 변환됩니다:

 

 

{
  orderBy: 'popularity',
  category: 'men'
}

req.query를 통해 orderBy와 category 값을 쉽게 추출할 수 있으며, 이를 이용해 클라이언트의 요청에 맞는 처리를 할 수 있습니다.

 

 

 


3. 쿼리 파라미터의 구조 분해 할당 (Destructuring Assignment)

 

ES6(ECMAScript 2015)부터 제공되는 구조 분해 할당을 사용하면 객체에서 특정 값을 추출하는 코드가 더욱 간결해집니다. 위 예시 코드에서 우리는 req.query 객체에서 orderBy와 category를 구조 분해 할당을 사용하여 추출하고 있습니다.

 

const { orderBy, category } = req.query;

이 코드는 req.query 객체에서 orderBy와 category라는 속성 값을 추출하여 각각 orderBy, category라는 변수에 할당하는 방식입니다. 이는 다음과 같은 코드와 동일하지만 더 간결하고 가독성이 좋습니다:

 

const orderBy = req.query.orderBy;
const category = req.query.category;

구조 분해 할당을 사용하면 코드가 더욱 깔끔해지고, 복잡한 객체에서 필요한 값만을 빠르게 추출할 수 있습니다.

 

 

 

 

반응형

 

 


4. 쿼리 파라미터로 다양한 데이터 다루기

 

Express.js에서 쿼리 파라미터를 통해 다양한 데이터를 처리할 수 있습니다. 예를 들어, 상품을 인기순으로 조회하거나, 특정 카테고리의 상품만 조회하는 등의 작업을 할 수 있습니다. 이런 작업은 주로 쿼리 파라미터를 통해 어떤 기준에 맞춰 데이터를 필터링하거나 정렬하는 방식으로 이루어집니다.

 

예시 1: 인기순으로 상품 조회

 

다음은 orderBy=popularity라는 쿼리 파라미터를 받아서, 인기순으로 상품을 조회하는 예시입니다.

app.get('/api/clothes', (req, res) => {
  const { orderBy } = req.query;

  if (orderBy === 'popularity') {
    // 인기순으로 상품을 조회하는 로직
    res.send('인기순으로 상품을 조회합니다.');
  } else {
    res.send('정렬 기준이 없습니다.');
  }
});

클라이언트가 /api/clothes?orderBy=popularity로 요청을 보내면, 서버는 인기순으로 상품을 조회하는 로직을 실행하게 됩니다.

 

 

 

예시 2: 카테고리 필터링

다음은 category 쿼리 파라미터를 사용하여 특정 카테고리의 상품만 필터링하는 예시입니다.

app.get('/api/clothes', (req, res) => {
  const { category } = req.query;

  if (category === 'men') {
    res.send('남성용 의류를 조회합니다.');
  } else if (category === 'women') {
    res.send('여성용 의류를 조회합니다.');
  } else {
    res.send('전체 의류를 조회합니다.');
  }
});

클라이언트가 /api/clothes?category=men으로 요청을 보내면, 서버는 남성용 의류를 조회하는 로직을 실행합니다.

 

 

 


5. 쿼리 파라미터의 장점과 유용성

 

쿼리 파라미터는 여러 가지 장점이 있습니다. 첫 번째로, URL에 데이터를 직접 전달할 수 있어 클라이언트와 서버 간의 통신이 간단하고 효율적입니다. 클라이언트는 URL을 통해 데이터를 전달하고, 서버는 이 데이터를 기반으로 필요한 작업을 처리합니다. 두 번째로, URL을 통해 필터링, 정렬, 페이지네이션 등을 처리할 수 있어 웹 애플리케이션에서 자주 사용됩니다. 예를 들어, 검색어를 포함한 결과를 반환하거나, 페이지 번호를 지정하여 여러 페이지로 나누어 조회하는 기능을 구현할 때 유용합니다.

 

 

 


 

Express.js의 req.query는 URL에 포함된 쿼리 파라미터를 쉽게 처리할 수 있게 해주는 객체입니다. 이를 사용하면 클라이언트가 보낸 데이터를 간편하게 추출하고, 그에 맞는 로직을 처리할 수 있습니다. 쿼리 파라미터는 웹 애플리케이션에서 데이터를 필터링하거나 정렬하는 데 매우 유용한 방법이며, Express.js에서는 이를 매우 직관적으로 다룰 수 있습니다. req.query를 활용하면, 클라이언트의 요청을 바탕으로 동적인 콘텐츠를 처리할 수 있어 효율적인 서버 개발이 가능합니다.

728x90