반응형
미들웨어 (Middleware)
- 웹 서버에서 특정 요청이 처리되는 과정 중에 일어나는 공통적인 작업을 처리하는 소프트웨어 컴포넌트
웹 서버가 요청을 받을 때 모든 요청에 대해 일관된 처리가 필요한 경우, 미들웨어를 통해 효율적인 관리 가능
Ex. 로그 기록, 사용자 인증, 데이터 포맷 변환 등
Express.js 내장 미들웨어
- express.urlencoded: form-urlencoded 형식의 바디 데이터를 처리
- express.json: JSON 형식의 바디 데이터를 처리
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
미들웨어 작성 방법
- 기본 형태: app.use((req, res, next) => { /* 코드 */ })
- req(요소): 요청 객체, HTTP 헤더, 쿼리 파라미터, URL 등의 정보를 담고 있음
- res(요소): 응답 객체, HTTP 상태 코드, 데이터 형식, 헤더 설정 등의 기능을 제공
- next(요소): 다음 미들웨어를 호출
// 로그 기록 미들웨어 예시
app.use((req, res, next) => {
console.log('Request URL:', req.originalUrl, ' - ', new Date());
next();
});
미들웨어의 작동 방식
- 여러 미들웨어가 있을 경우, 첫 번째 미들웨어부터 순차적으로 처리
- next() 함수 호출을 통해 다음 미들웨어로 진행
Router와 미들웨어의 차이
- 미들웨어는 요청과 응답 사이의 일련의 처리 과정을 담당하며 보안, 로깅, 요청 데이터 등과 같은 기능을 수행
- 라우터는 들어오는 요청을 애플리케이션의 다양한 부분으로 라우팅 하는 역할을 담당하여, 각 요청이 적절한 컨트롤러나 핸들러에 도달하도록 함
Express.js 미들웨어 실행 조건
- 전역 미들웨어: app.use(Middleware)로 설정하면 모든 요청에 대해 미들웨어가 실행
- 경로별 미들웨어: app.use('/api', Middleware)로 설정하면 특정 경로의 요청에만 미들웨어가 실행
- 메소드별 미들웨어: app.post('/api', Middleware)로 설정하면 특정 경로의 POST 요청에만 미들웨어가 실행
레퍼런스
반응형
'backend > Node.js' 카테고리의 다른 글
| [Node.JS] Sequelize (0) | 2023.11.10 |
|---|---|
| [Node.JS] 관계형 데이터베이스 & SQL (0) | 2023.11.10 |
| [Node.JS] 인증(Authentication) (0) | 2023.11.09 |
| [Node.JS] REST API & Validation (1) | 2023.11.08 |
| [Node.JS] AWS EC2 배포 정리 (0) | 2023.11.02 |
