Express 미들웨어 사용하는 방법과 자주 사용되는 미들웨어 소개

Express 미들웨어 사용하는 방법과 자주 사용되는 미들웨어 소개

Express 애플리케이션에서 미들웨어는 요청과 응답 사이에서 중간 처리를 담당하는 함수들입니다. 이들은 Express 앱의 기능을 확장하고, 요청 처리 파이프라인을 효율적으로 관리할 수 있게 해줍니다. 이 글에서는 Express의 미들웨어 사용 방법과 함께 몇 가지 자주 사용되는 미들웨어를 소개합니다.

Express 미들웨어 사용 방법

Express에서 미들웨어를 사용하는 방법은 매우 간단합니다. 애플리케이션 또는 라우터 수준에서 app.use() 또는 router.use() 메서드를 사용하여 미들웨어를 등록할 수 있습니다.

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

// 요청 URL을 출력하는 미들웨어 함수
const logUrlMiddleware = (req, res, next) => {
  console.log(`요청 받음: ${req.url}`);
  next();
};

// 미들웨어 적용
app.use(logUrlMiddleware);

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`서버가 http://localhost:${port} 에서 실행중입니다.`);
});

이 코드는 각 요청이 처리되기 전에 요청 URL을 콘솔에 출력하는 미들웨어 함수 logUrlMiddleware를 포함하고 있습니다. next() 함수는 다음 미들웨어 함수나 라우터 핸들러로 제어를 전달하는 역할을 합니다.

Express 미들웨어 사용 예제코드 실행 화면

자주 사용되는 미들웨어 소개

1. express.static: 정적 파일(HTML, CSS, JavaScript, 이미지 파일 등)을 제공하는 데 사용됩니다. 이 미들웨어를 사용하면 특정 디렉토리의 파일을 웹 서버에서 직접 접근할 수 있게 됩니다.

app.use(express.static('public'));

위 코드는 ‘public’ 디렉토리 안의 파일들을 웹 서버의 루트 경로에서 제공합니다.

2. body-parser: 요청 본문을 파싱하여 req.body를 통해 쉽게 접근할 수 있게 해주는 미들웨어입니다. Express 4.16.0 버전 이후부터는 express 내장 메서드인 express.urlencoded와 express.json()을 사용하여 동일한 기능을 수행할 수 있습니다.

app.use(express.urlencoded({ extended: true }));
app.use(express.json());

이 코드는 URL 인코딩된 데이터와 JSON 형식의 데이터를 각각 파싱합니다.

3. compression: 응답 데이터를 압축하는 데 사용됩니다. 이 미들웨어를 사용하면 대역폭을 절약하고 응답 시간을 개선할 수 있습니다.

const compression = require('compression');
app.use(compression());

이 코드는 모든 응답에 대해 압축을 적용합니다.

Express 미들웨어는 애플리케이션의 요청 처리 과정을 매우 유연하게 만들어 줍니다. 위에서 소개한 미들웨어 외에도 Express와 함께 사용할 수 있는 다양한 미들웨어가 있으니, 필요에 따라 적절한 미들웨어를 선택하여 사용하시길 바랍니다.

더 자세한 정보를 원하시면, Express 공식 문서의 미들웨어 섹션을 참조하세요.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤