미들웨어 체인
여러 미들웨어 순차 실행
미들웨어 배열을 순차적으로 적용합니다.
const middlewares = [
loggingMiddleware,
corsMiddleware,
authMiddleware
];
async function applyMiddlewares(req, handler) {
let middlewareData = {};
for (const middleware of middlewares) {
const result = middleware(req, middlewareData);
// 에러 발생 시 즉시 반환
if (result.error) {
return result.error;
}
middlewareData = { ...middlewareData, ...result };
}
// 최종 핸들러 실행
return handler(req, middlewareData);
}
const server = Bun.serve({
port: 3000,
fetch(req) {
return applyMiddlewares(req, (req, data) => {
return new Response(JSON.stringify({
message: "Request processed",
data: data
}), {
headers: { "Content-Type": "application/json" }
});
});
}
});
실행 순서
- 로깅 (요청 기록)
- CORS (헤더 설정)
- 인증 (토큰 검증)
- 핸들러 (요청 처리)