Что такое Middleware?
Продвинутые темы
Middleware (промежуточное ПО) — это функция, которая встраивается в конвейер обработки между входом и итоговым действием и может читать, изменять запрос/данные, выполнять побочные эффекты или прерывать поток.
Идея
Middleware образуют «цепочку»: каждое звено получает управление, что-то делает и передаёт дальше (next) или прерывает.
На сервере (Express/Nest)
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`); // логирование
next(); // передать управление дальше
});Применение: логирование, аутентификация, парсинг тела, обработка ошибок, CORS.
В Redux
Middleware стоит между dispatch и reducer — перехватывает action:
const logger = (store) => (next) => (action) => {
console.log('dispatch', action);
return next(action);
};Применение: асинхронность (redux-thunk, redux-saga), логи, аналитика.
Общий паттерн
Middleware реализует принцип «конвейера»/цепочки ответственности: переиспользуемые слои обработки, которые легко комбинировать.
Коротко для собеседования
Middleware — промежуточная функция в конвейере обработки, которая может изменить запрос/action, выполнить побочный эффект и передать управление дальше (next) или прервать. На сервере — логи/авторизация, в Redux — асинхронность и логирование.