728x90
반응형
SMALL
Express에서 기본 라우팅 설정 방법과 동적 라우팅 및 파라미터 처리 방법을 이해하고 적용한다.
1. 기본 라우팅 설정
라우팅이란?
· 라우팅은 URL 경로에 따라 요청을 처리하는 방법을 정의하는 기능이다.
· Express는 다양한 HTTP 메서드를 지원하며, 경로에 따라 요청을 처리할 수 있다.
728x90
기본 라우팅 설정
· 간단한 GET 요청 라우트를 설정해보자.
// app.js
const express = require('express');
const app = express();
const port = 3000;
// 기본 GET 요청 라우트
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
// 다른 경로에 대한 GET 요청 라우트
app.get('/about', (req, res) => {
res.send('About Page');
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
· 서버를 시작하고, 브라우저에서 http://localhost:3000과 http://localhost:3000/about를 열어 응답을 확인한다.
2. 동적 라우팅 및 파라미터 처리
동적 라우팅이란?
· 동적 라우팅은 URL 경로의 일부분을 변수로 처리하여 다양한 요청을 처리하는 방법이다.
· 경로 파라미터를 사용하여 동적으로 요청을 처리할 수 있다.
반응형
동적 라우팅 설정
· 경로 파라미터를 사용하여 동적 라우팅을 설정해보자.
// 동적 라우트 설정
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID: ${userId}`);
});
· 서버를 시작하고, 브라우저에서 http://localhost:3000/users/123과 같은 URL을 열어 응답을 확인한다.
SMALL
쿼리 파라미터 처리
· 쿼리 파라미터를 사용하여 요청을 처리할 수 있다.
· 쿼리 파라미터는 URL의 물음표(?) 뒤에 오는 파라미터이다.
// 쿼리 파라미터 처리
app.get('/search', (req, res) => {
const query = req.query.q;
res.send(`Search query: ${query}`);
});
· 서버를 시작하고, 브라우저에서 http://localhost:3000/search?q=express와 같은 URL을 열어 응답을 확인한다.
3. 라우팅 예제
예제: 사용자 정보 페이지
· 사용자 정보를 동적으로 처리하는 라우트를 설정해보자.
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// 예제 데이터
const users = {
1: 'Alice',
2: 'Bob',
3: 'Charlie'
};
const userName = users[userId];
if (userName) {
res.send(`User Name: ${userName}`);
} else {
res.send('User not found');
}
});
예제: 검색 기능
· 쿼리 파라미터를 사용하여 검색 요청을 처리해보자.
app.get('/search', (req, res) => {
const query = req.query.q;
res.send(`Search results for: ${query}`);
});
- 이전 수업 목록
728x90
반응형
LIST
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js 강의 시리즈] 21강 - EJS 템플릿 엔진 (0) | 2024.07.22 |
---|---|
[Node.js 강의 시리즈] 20강 - 미들웨어 (0) | 2024.07.19 |
[Node.js 강의 시리즈] 18강 - Express를 사용한 웹 서버 구축 (1) | 2024.07.17 |
[Node.js 강의 시리즈] 17강 - 비동기 처리 패턴 비교 (0) | 2024.07.16 |
[Node.js 강의 시리즈] 16강 - async/await (0) | 2024.07.15 |