Middleware¶
Node.js middleware, или по-другому функция промежуточной обработки, используется для выполнения каких-либо действий на основе данных объекта запроса и ответа и передает обработку следующей функции.
Пример Node.js middleware.
app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Здесь для всех поступающих запросов добавляется HTTP-заголовок From-Middleware
со значением 1
.
Для создания Node.js middleware используется метод use()
экземпляра фреймворка Express, который принимает два аргумента:
- определение маршрута, при обращении к которому должна вызываться функция промежуточной обработки (по умолчанию
/
); - callback-функция, определяющая выполняемые действия.
Если методу use()
передать только callback-функцию, то в качестве маршрута будет использовано значение по умолчанию. Самой функции передается четыре параметра:
- ошибка, если все успешно, то содержит
null
; - объект запроса;
- объект ответа;
- следующая функция обработки.
Если не передать вызов следующему обработчику, запрос "застрянет" в текущем middleware, поэтому очень важно не забывать next()
.
1 2 3 4 5 |
|
Наглядным примером встроенного Node.js middleware является обработка отдачи статических файлов.
Все конечные обработчики, имеются в виду методы get()
, post()
и т. д., также являются функциями промежуточной обработки, которые не передают вызов дальше. Поэтому очень важно определить все Node.js middleware до определения конечных обработчиков.
1 2 3 4 5 6 7 8 9 10 11 |
|