본문 바로가기
BE 공부/Node.js

Middleware란?

by 꼬질꼬질두부 2023. 9. 1.

Middleware란?

미들웨어는 요청과 응답 사이의 중간 처리 단계를 말합니다.

미들웨어는 요청(request)을 받아서 응답(response)을 보낼 때까지의 과정 중
하나 이상의 작업을 수행하는 함수 또는 함수들의 집합입니다.


Middleware의 기본 구조

모든 Express 미들웨어 함수는 다음과 같은 세 개의 매개변수를 가집니다:

  1. req: 요청 객체
  2. res: 응답 객체
  3. 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

댓글