Sobes.tech
Back to questions
Junior — Middle
89

Объясните концепцию порядка выполнения middleware в цепочке обработки запросов.

Answer from AI

sobes.tech AI

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

Каждый middleware получает объекты запроса (req), ответа (res) и функцию next. Чтобы передать управление следующему middleware, нужно вызвать next(). Если next() не вызван, цепочка прерывается, и последующие middleware не выполняются.

Таким образом, порядок регистрации middleware критичен, так как он определяет последовательность обработки запроса. Например, middleware для логирования обычно ставят в начало, а обработчики маршрутов — в конец.

Пример:

app.use((req, res, next) => {
  console.log('Логируем запрос');
  next();
});

app.use((req, res, next) => {
  if (!req.user) {
    return res.status(401).send('Неавторизован');
  }
  next();
});

app.get('/profile', (req, res) => {
  res.send('Профиль пользователя');
});

Здесь сначала сработает логирование, затем проверка авторизации, и только потом обработчик маршрута.