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 работает на уровне приложения и может изменять запрос/ответ, фильтры обычно только проверяют условия.