Middleware

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

Типы Middleware

  • Web middleware — обработка HTTP запросов
  • Database middleware — доступ к базам данных
  • Message-oriented middleware — обмен сообщениями
  • Transaction middleware — управление транзакциями

Middleware в веб-разработке

  • Аутентификация — проверка пользователя
  • Авторизация — проверка прав доступа
  • Логирование — запись запросов и ответов
  • CORS — настройка кросс-доменных запросов
  • Rate limiting — ограничение частоты запросов

Пример middleware в Express.js

 1// Middleware для логирования
 2function logger(req, res, next) {
 3  console.log(`${req.method} ${req.url}`);
 4  next(); // передать управление следующему middleware
 5}
 6
 7// Использование middleware
 8app.use(logger);
 9
10// Middleware для аутентификации
11function authenticate(req, res, next) {
12  const token = req.headers.authorization;
13  if (!token) {
14    return res.status(401).send('Unauthorized');
15  }
16  // проверка токена...
17  next();
18}

Паттерн Chain of Responsibility

  • Каждый middleware может обработать запрос или передать дальше
  • Возможность добавления/удаления обработчиков
  • Разделение ответственности между компонентами

FAQ

В чем разница между middleware и фильтрами?

Middleware работает на уровне приложения и может изменять запрос/ответ, фильтры обычно только проверяют условия.