Проміжне ПЗ
Ми плавно підійшли до теми проміжного ПЗ. Насправді проміжне ПЗ - просто
функція, що приймає три аргументи: об'єкт запиту (req
), об'єкт відповіді
(res
) і функцію next
. Проміжне ПЗ виконується способом, названим
конвеєрною обробкою. Уявіть собі водопровідну трубу, якою тече
вода. Вода закачується через один кінець труби і проходить через манометри та
клапани, наше проміжне ПЗ, перш ніж потрапляє за призначенням - в нашу
склянку. Важливий момент цієї аналогії у тому, що черговість має ключове
значення.
Вбудуємо власне проміжне ПЗ у наш файл app.js
перед викликом статики.
app.use((req, res, next) => {
console.log('Наше проміжне ПЗ');
next();
});
Ця функція нічого не виконує, просто пропускає потік через себе, але в консоль завжди буде вискакувати наше повідомлення.

Функції проміжної обробки (middleware
) - це функції, що мають доступ до
об'єкту запиту (req
), об'єкту відповіді (res
) і до наступної функції
проміжної обробки в циклі "запит-відповідь" програми. Наступна функція
проміжної обробки, як правило, позначається змінною next
.
Функції проміжної обробки виконують наступні завдання:
- виконують певний код.
- вносять зміни до об'єктів запитів та відповідей.
- можуть завершити цикл "запит-відповідь" та перервати обробку запиту.
- викликають наступну функцію проміжної обробки зі стеку, виконанням функції next().
Якщо поточна функція проміжної обробки не завершує цикл "запит-відповідь", вона повинна викликати next() передачі управління наступної функції проміжної обробки. Інакше запит зависне.