Что такое параметр next в middleware

Ответ

Параметр next в middleware — это функция, которая передает управление следующему middleware в цепочке. Если её не вызвать, запрос "зависнет" и не дойдёт до обработчика маршрута.

Пример в Express.js:

app.use((req, res, next) => {
  console.log('Middleware 1');
  next(); // передаём управление следующему middleware
});

app.use((req, res, next) => {
  console.log('Middleware 2');
  next();
});

Если next() не вызвать, второй middleware и конечный обработчик не сработают. Можно передать ошибку в next(error), чтобы перейти к обработчику ошибок.

Ответ 18+ 🔞

Да ты посмотри, что тут у нас творится! Слушай, есть такая штука — next. Это, блядь, как эстафетная палочка в твоём middleware. Если её не передать дальше, то всё, пиздец — запрос просто зависнет, как будто его в аду забыли, и до маршрута так и не доползёт.

Смотри, вот тебе живой пример на Express.js, чтобы совсем понятно стало:

app.use((req, res, next) => {
  console.log('Middleware 1');
  next(); // Вот эта, сука, магия! Кидаем палочку дальше!
});

app.use((req, res, next) => {
  console.log('Middleware 2');
  next(); // И опять кидаем, а то второй даже не чихнёт!
});

А если, блядь, забыть этот next() вызвать — всё, второй middleware и твой роутер останутся сидеть, как дурачки, и ждать своего часа, который никогда не наступит. Вообще ни хуя не произойдёт!

И ещё прикол — в эту next можно ошибку запихнуть, типа next(error). Тогда вся цепочка, ёпта, перепрыгнет прямиком к обработчику ошибок, как будто её током долбануло. Вот такие пироги, дружище.