Image

Что такое middleware? Примеры в Express, FastAPI и других фреймворках

Что такое middleware? Примеры в Express, FastAPI и других фреймворках

Что такое middleware? Примеры в Express, FastAPI и других фреймворках

Middleware — это важный механизм современных фреймворков. Он помогает обработать дополнительные действия внутри программы. Рассмотрим примеры использования в Express, FastAPI и других системах.

Middleware (промежуточное программное обеспечение) — это промежуточная логика, которая выполняется между получением запроса сервером и возвратом ответа клиенту. В большинстве современных веб-фреймворков middleware используется для реализации таких вещей, как аутентификация, логирование, обработка ошибок, проверка прав доступа, подготовка заголовков или форматирование ответа.

Как это работает на общем уровне?

Когда поступает HTTP-запрос, сервер не обязательно сразу передаёт его главному обработчику (то есть функции, которая формирует ответ). Сначала он может пройти через несколько middleware-функций — каждая из которых либо что-то делает с запросом, либо проверяет, можно ли запросу двигаться дальше. Некоторые middleware могут полностью остановить дальнейшую обработку, например, если токен недействителен.

Middleware в Express.js

Express.js — один из самых популярных фреймворков Node.js, и в нём концепция middleware — основа всей архитектуры. Middleware в Express — это функции, которые имеют доступ к объекту запроса (req), объекту ответа (res) и следующей функции в цепочке (next).

Вот базовый пример middleware в Express:

// Простой middleware function logger(req, res, next) { console.log(`${req.method} ${req.url}`); next(); // обязательно вызвать, чтобы передать управление дальше } app.use(logger); // применяем middleware глобально

Такие middleware могут быть применены глобально (через app.use), или только к отдельным маршрутам. Во фреймворке middleware выполняется последовательно в порядке, в котором оно было зарегистрировано.

Типы middleware в Express:

    Глобальные (app.use(…))Маршрутные (app.get('/path', middleware, handler))Обработчики ошибок (с 4-мя параметрами: err, req, res, next)Встроенные (например, express.json())

Что такое middleware? Примеры в Express, FastAPI и других фреймворках

Курс изучения JavaScript

Можете пройти наш бесплатный курс по изучению JavaScript

Middleware в FastAPI

FastAPI — это фреймворк на Python, который поддерживает асинхронность и типизацию. В нём middleware также выполняется на каждый HTTP-запрос, если оно подключено. Middleware здесь — это функции, которые выполняются до и после того, как запрос дойдёт до основного маршрута.

Вот пример middleware в FastAPI:

from fastapi import FastAPI, Request from starlette.middleware.base import BaseHTTPMiddleware app = FastAPI() # Создание middleware-класса class LoggerMiddleware(BaseHTTPMiddleware): async def dispatch(self, request: Request, call_next): print(f»Запрос: {request.method} {request.url}») response = await call_next(request) # Передаём запрос дальше return response # Добавление middleware в FastAPI app.add_middleware(LoggerMiddleware)

В FastAPI middleware также может выполнять валидацию токенов, логирование, изменять заголовки или перехватывать исключения. Порядок выполнения middleware также имеет значение: первым зарегистрированное — первым и выполняется.

Особенности FastAPI middleware:

    Использует классы на базе BaseHTTPMiddlewareПоддерживает асинхронные функцииПозволяет изменять как запрос, так и ответ

Что такое middleware? Примеры в Express, FastAPI и других фреймворках

Курс изучения Python

Можете пройти наш бесплатный курс по изучению Python

Middleware в других фреймворках

В большинстве современных фреймворков, таких как Laravel (PHP), ASP.NET (C#), Django (Python), Koa (Node.js), существует аналогичная концепция middleware. Хотя реализация отличается, идея одна и та же — это слой между HTTP-запросом и конечной точкой обработки.

Например, в Laravel middleware — это классы, которые можно применять к группам маршрутов или отдельным маршрутам. В Django — это функции или классы, которые оборачивают обработку запроса. В Koa middleware реализовано как стек функций, работающих на основе async/await.

Сравнение: Express, FastAPI, Laravel, Django

ФреймворкТип middlewareФормат
ExpressФункцииfunction(req, res, next)
FastAPIКлассыclass BaseHTTPMiddleware
LaravelКлассыhandle($request, Closure $next)
DjangoКлассы или функции__call__ или process_view()

Когда использовать middleware

Middleware — идеальный инструмент, когда нужно применить повторяющуюся логику к большому количеству маршрутов. Наиболее типичные сценарии:

    Логирование запросовПроверка аутентификацииОбработка ошибокНастройка CORSИзменение/фильтрация входящих данныхСжатие, кэширование, ограничение частоты запросов

При правильном использовании middleware позволяет сократить дублирование кода, повысить безопасность и улучшить поддержку проекта. Важно следить за порядком подключения middleware, ведь именно он определяет, как будет обработан запрос.

Источник

✅ Найденные теги: новости, Что
Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Код на экране компьютера, программирование, интерфейс разработчика.

Хайп или будущее: какие технологии реально проживут 10 лет

Хайп или будущее: какие технологии реально проживут 10 лет Какие технологии переживут хайп и останутся с нами на десятилетие? Разбираем AI, Web3, low-code, облака и другие тренды без эмоций — только холодный анализ рынка. Технологический рынок живёт…

Мар 2, 2026
Компьютер с изображением робота и иконками приложений на экране, символизирует технологии.

Как комбинировать несколько ИИ‑сервисов в один конвейер: от идеи до публикации за один вечер

ИИ сейчас умеет многое, но магии «одной кнопки, которая сделает идеальную статью и сама её опубликует» всё ещё нет. Зато можно собрать…

Фев 23, 2026
Женщина работает за ноутбуком, цифровая коммуникация, графики и письма, концепция удаленной работы.

AI‑агенты для рядового пользователя: 5 сценариев, которые реально экономят время

Слово «AI‑агент» в 2026 году звучит уже не как фантастика, а как нормальный рабочий инструмент, который тихо делает за нас рутину. Компании…

Фев 22, 2026
Компьютер с контрольным списком, замки, деньги, часы на светло-голубом фоне.

Как выбирать ИИ‑сервисы: чек‑лист критериев (цена, лимиты, качество, приватность)

В 2026 году выбрать ИИ‑сервис стало сложнее, чем когда‑либо: вокруг сотни «топ‑10 нейросетей», каждая обещает революцию, а в итоге можно…

Фев 20, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых