[javascript] Express.js에서의 미들웨어 체인 처리 방법

미들웨어 체인은 Express.js로 개발을 할 때 매우 중요한 개념입니다. Express.js는 미들웨어를 사용하여 요청(request)과 응답(response) 사이에서 작업을 처리합니다. 미들웨어 체인은 이러한 작업들을 연속적으로 처리하는 방법을 제공합니다.

미들웨어 체인 개요

미들웨어 체인은 Express.js 애플리케이션에서 요청과 응답을 처리하기 위해 사용되는 함수들의 연속입니다. 각각의 미들웨어 함수는 다음 미들웨어 함수로 제어권을 넘깁니다. 이 체인에서 각 미들웨어는 요청 객체(req), 응답 객체(res) 그리고 다음 미들웨어 함수에 대한 액세스 권한을 가지게 됩니다.

미들웨어 체인 처리 방법

미들웨어 체인을 처리하기 위해 Express.js에서는 app.use() 메서드를 사용합니다. 이 메서드는 Express 애플리케이션에 미들웨어 함수를 추가하는 역할을 합니다. 일반적으로 다음과 같은 형식으로 사용됩니다:

app.use([path], middleware);

위의 코드에서 path 매개변수는 미들웨어 함수를 적용할 URL 경로를 나타내며 생략 가능합니다. middleware 매개변수는 미들웨어 함수입니다. 이러한 방식으로 미들웨어 함수를 순서대로 추가하면 Express는 자동으로 요청과 응답을 해당 미들웨어 함수들로 전달합니다.

예를 들어, 다음과 같이 미들웨어 함수를 추가할 수 있습니다:

app.use(logger);
app.use(cors);
app.use(bodyParser.json());
app.use(router);

위의 코드에서 logger, cors, bodyParser.json(), router는 각각 미들웨어 함수입니다. Express는 요청과 응답을 이들 미들웨어 함수들로 전달하여 처리합니다.

미들웨어 체인 예제

다음은 실제로 사용될 수 있는 Express.js 애플리케이션의 미들웨어 체인 예제입니다:

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

// Logger 미들웨어
const logger = (req, res, next) => {
  console.log('Logging...');
  next();
};

// CORS 미들웨어
const cors = (req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  next();
};

// 요청 본문 파싱 미들웨어
const bodyParser = require('body-parser');

// 라우터 미들웨어
const router = express.Router();

// 미들웨어 함수 추가
app.use(logger);
app.use(cors);
app.use(bodyParser.json());
app.use(router);

// 라우터 경로 설정
router.get('/', (req, res) => {
  res.send('Hello, World!');
});

// 서버 시작
app.listen(3000, () => {
  console.log('Server started on port 3000');
});

위의 코드에서는 logger, cors, bodyParser.json(), router 순서대로 미들웨어 함수를 추가하고 있습니다. 이러한 미들웨어들은 요청과 응답을 전달받아 처리하며, 필요한 작업을 수행합니다.

이렇게 Express.js에서 미들웨어 체인을 처리하는 방법에 대해 알아보았습니다. Express.js의 미들웨어 체인을 제대로 활용하면 웹 애플리케이션의 요청과 응답을 효율적으로 처리할 수 있습니다.

참고 자료