Middlewares играют очень важную роль в жизненном цикле запроса. Средние войны расположены между сервером и ответом.
Основная роль промежуточного программного обеспечения состоит в том, чтобы обработать запрос в середине, прежде чем он будет получен обработчиком маршрута. Обработка может быть связана с различными вещами, такими как:
Регистрация всех запросов, поступающих на сервер (Морган – очень популярное промежуточное программное обеспечение, используемое для этой цели)
Чтобы проверить, имеет ли запрос
Auth Tokenили нет (PassCode JS является популярным промежуточным программным обеспечением для этой цели)
Это в основном функции, которые могут получить доступ к объекту запроса, объект ответа, а также следующую функцию промежуточного программного обеспечения в жизненном цикле приложения-ответа (следующая функция промежуточного программного обеспечения обычно обозначается переменной, называемой следующей).
Если текущее промежуточное программное обеспечение не заканчивает цикл запроса-ответа, оно должно вызовать следующее () для передачи управления следующей функцией промежуточного программного обеспечения, или запрос будет оставлен висел.
Middlewares может быть различных типов, в зависимости от различных потребностей, которые требуются программистом в запросе.
Ниже приведены некоторые типы среднихвор, которые доступны на основе ваших требований:
- Промежуточное программное обеспечение на уровне приложения
- Промежуточное программное обеспечение на уровне маршрутизатора
- Ошибка обработки промежуточного программного обеспечения
- Встроенное промежуточное программное обеспечение
- Стороннее промежуточное программное обеспечение
Давайте возьмем пример промежуточного программного обеспечения на уровне приложения:
var express = require('express')
var app = express()
app.use(function (req, res, next){
console.log('Time', Date.now())
next()
})
Приведенное выше промежуточное программное обеспечение выполняется каждый раз, когда приложение получает запрос.
Установите Миддерин на путь:
app.use("/products/:id", function(req,res,next){
console.log('Request Type: ', req.method)
next()
})
Приведенное выше промежуточное программное обеспечение выполняется каждый раз, когда запрос получается на пути «Продукты/: ID».
Находясь на путь к конкретному запросу:
app.get("/products/:id", function(req,res,next){
res.send('product')
next()
})
Приведенное выше промежуточное программное обеспечение выполняется каждый раз, когда мы получаем запрос GET на пути «Продукты/: ID».
Давайте подробнее рассмотрим следующее ():
Next () используется для пропадения запроса вперед. Призыв Next () очень важен, если не называть, то это в основном обработчик маршрута, а не промежуточное программное обеспечение.
Одной из очень важных вещей в Middlewares является порядок программы или где промежуточное программное обеспечение использовалось для эффективного использования маршрутов.
Например:
app.use("/categories",categories)
app.use(middleware)
Здесь промежуточные программные обеспечения не будут обрабатываться промежуточным программным обеспечением, чтобы они могли работать должным образом, мы должны определить и использовать его в верхней части всех маршрутов, где мы хотим, чтобы промежуточное программное обеспечение обрабатывало запросы.
Таким образом, мы можем сказать, что Middlewares оказывают большую помощь в реализации сухой и могут использоваться с большими преимуществами, чтобы снять некоторую загрузку с сервера.
Оригинал: “https://dev.to/shasheeshpurohit/express-middlewares-1lc0”