Middleware란?
미들웨어는 요청과 응답 사이의 중간 처리 단계를 말합니다.
미들웨어는 요청(request)을 받아서 응답(response)을 보낼 때까지의 과정 중
하나 이상의 작업을 수행하는 함수 또는 함수들의 집합입니다.
Middleware의 기본 구조
모든 Express 미들웨어 함수는 다음과 같은 세 개의 매개변수를 가집니다:
- req: 요청 객체
- res: 응답 객체
- next: 다음 미들웨어 함수로 이동하기 위한 함수
Middleware 사용법
미들웨어는 app.use()를 통해 추가됩니다. 이 때, 미들웨어는 등록된 순서대로 실행됩니다.
const express = require('express');
const app = express();
// 로깅 미들웨어
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // 다음 미들웨어로 이동
});
Middleware 예시
1. 로깅 미들웨어:
역할: 요청이 들어올 때마다 해당 요청의 정보를 콘솔에 기록
app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
next();
});
2. 요청 본문 파싱 미들웨어:
역할: 들어오는 요청의 본문을 파싱하여, JavaScript 객체로 변환. 주로 POST 요청에서 JSON 데이터를 처리할 때 사용
app.use(express.json());
3. 인증 미들웨어:
역할: 들어오는 요청의 헤더에 인증 정보가 있는지 확인하고, 해당 정보가 유효한지 검증. 유효하지 않다면 401 Unauthorized 응답을 반환.
app.use((req, res, next) => {
const token = req.headers.authorization?.split(' ')[1];
if (!token) {
return res.sendStatus(401);
}
const { ok, userid } = parseToken(token);
if (!ok) {
return res.sendStatus(403);
}
req.userid = userid;
next();
});
'BE 공부 > Node.js' 카테고리의 다른 글
NPM 미러링 서버란? (0) | 2025.01.10 |
---|---|
[JavaScript] map, flatMap, reduce (1) | 2024.12.30 |
[비동기 처리] return await과 return의 차이 (1) | 2024.12.26 |
동기와 비동기란? (0) | 2023.04.06 |
Callback(콜백) 함수란? (0) | 2023.04.06 |
댓글