Express에서는 HTTP 요청 메소드와 URL 경로에 따라 요청을 처리하는 여러 방식이 있고, 상황에 맞게 효율적인 방법을 선택해 사용하면 됩니다.
Individual Route Handlers
app.get() 방식
단일 라우팅 처리에 적합한 방식입니다.
간단한 라우트를 처리할 때 사용합니다.
지난 라우팅 소개 포스팅에서 했던 내용입니다.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
이러한 방식은 간단하고 직관적이지만, 라우팅 로직이 길어지면 가독성이 나빠질 수 있기 때문에 간단한 라우팅 처리가 아니라면 아래 방법을 사용하는 것이 좋습니다.
Route Chaining" 또는 "Chained Route Handlers
app.route() 방식
동일한 경로에 대해 다른 HTTP 요청 방식을 처리할 때 사용합니다.
라우트 경로가 길어질 때 사용하면 가독성을 높일 수 있습니다.
Express의 애플리케이션 객체(app)를 통해 라우트 경로('/users'와 같은)를 먼저 지정한 후, route() 메소드를 호출하여 각 HTTP 요청 메소드(get, post, put, delete)에 대한 핸들러 함수를 등록합니다.
const express = require('express');
const app = express();
app.route('/users')
.get((req, res) => {
res.send('Get a list of users');
})
.post((req, res) => {
res.send('Create a new user');
})
.put((req, res) => {
res.send('Update a user');
})
.delete((req, res) => {
res.send('Delete a user');
});
app.route() 방식은 하나의 경로에 대해 여러 메소드를 처리하는 라우팅 로직을 그룹화하여 가독성을 높입니다. 이 방식은 중복 코드를 줄이고 유지보수를 쉽게 할 수 있습니다.
Router-level Middleware" 또는 "Router-level Route Handlers
router.route() 방식
하나의 경로를 기준으로 복수개의 메소드를 처리할 때 사용합니다.
라우팅 경로가 길어질 때, 중복을 방지하고 가독성을 높일 수 있습니다.
Express의 Router 객체를 생성한 후, 라우트 경로('/users'와 같은)를 지정한 후, route() 메소드를 호출하여 각 HTTP 요청 메소드(get, post, put, delete)에 대한 핸들러 함수를 등록합니다.
const express = require('express');
const router = express.Router();
router.route('/users')
.get((req, res) => {
res.send('Get a list of users');
})
.post((req, res) => {
res.send('Create a new user');
})
.put((req, res) => {
res.send('Update a user');
})
.delete((req, res) => {
res.send('Delete a user');
});
router.route('/products')
.get((req, res) => {
res.send('Get a list of products');
})
.post((req, res) => {
res.send('Create a new product');
})
.put((req, res) => {
res.send('Update a product');
})
.delete((req, res) => {
res.send('Delete a product');
});
app.use('/api', router);
router.route() 방식은 app.route() 방식과 유사하지만, 모듈화된 라우터를 사용할 때 유용합니다. 각각의 모듈에서 router를 생성하고, 해당 router 객체에 route() 메소드를 호출하여 라우팅 로직을 그룹화할 수 있습니다.
'STUDY > ExpressJS' 카테고리의 다른 글
[4-3] Express.js 미들웨어 등록 메소드 - app.use() (0) | 2023.03.31 |
---|---|
[4-2] Express.js HTTP요청의 body를 파싱하기 위한 미들웨어 - body-parser (0) | 2023.03.31 |
[5-1] Express.js 라우팅(Routing), 라우트(Route), 라우터(Router) (0) | 2023.03.29 |
[4-2] express.js 미들웨어 여러 기능들 (0) | 2023.03.27 |
[4-1] Express.js 미들웨어 (Middleware) (0) | 2023.03.27 |