Получите промежуточное ПО в экспрессе? - PullRequest
0 голосов
/ 19 октября 2019

Я читал о промежуточном программном обеспечении в экспрессе и о том, как они работают. Я прочитал, что «use» - это промежуточное ПО, которое имеет доступ к объекту req, res и следующему промежуточному ПО. промежуточное ПО «use» использует следующее промежуточное ПО для передачи контроля выполнения следующему промежуточному ПО. Так что теперь я запутался, что все это промежуточное программное обеспечение - получить, опубликовать, удалить и поставить - все это или нет?

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Не совсем, но обратный вызов - это промежуточное ПО. Его можно рассматривать как промежуточное ПО, которое обрабатывает только определенный HTTP-глагол.

По сути, промежуточное программное обеспечение - это функция, которая принимает три аргумента, объект запроса, объект ответа и следующую функцию. Это способ инкапсулировать функциональность, которая работает с HTTP-запросами.

Они выполняются в конвейере. Если вы вызываете next(), вызывается следующее промежуточное ПО в конвейере.

app.get('/path', function(req, res, next) { //---> that's the middleware (note the next)
  next() -> move on to next middleware in the pipeline
})

app.use добавляет промежуточное ПО в конвейер .

Монтирует указанную функцию промежуточного программного обеспечения или функции по указанному пути: функция промежуточного программного обеспечения выполняется, когда база запрошенного пути совпадает с путем.

путь: путь, для которого вызывается функция промежуточного программного обеспечения ;
обратный вызов: функции обратного вызова;может быть:

  • A функция промежуточного программного обеспечения .
  • Ряд функций промежуточного программного обеспечения (разделенных запятыми).
  • Массив функций промежуточного программного обеспечения.
  • Сочетание всего вышеперечисленного.
0 голосов
/ 19 октября 2019

Обработчики глаголов являются промежуточным ПО стека:

https://expressjs.com/en/guide/using-middleware.html#middleware.router

Промежуточное ПО уровня маршрутизатора работает так же, как промежуточное ПО уровня приложения, за исключением того, что оно связано сэкземпляр express.Router ().

Конкретный пример по этой ссылке:

// a middleware sub-stack that handles GET requests to the /user/:id path
router.get('/user/:id', function (req, res, next) {
  // Etc.
}

Промежуточное ПО для глаголов не всегда выглядит как «универсальное» промежуточное ПО, поскольку оно частоконец цепочки промежуточного программного обеспечения, но в конечном итоге это одно и то же.

Сравните типичные обработчики глаголов с промежуточным программным обеспечением, выполняемым для каждого запроса:

// a middleware function with no mount path. This code is executed for every request to the router
router.use(function (req, res, next) {
  console.log('Time:', Date.now())
  next()
})

Представьте промежуточное программное обеспечение как "перехватчик" с глаголомпромежуточные программы как патологический случай, поскольку они очень часто просто игнорируют next, поскольку они обычно отвечают за отправку ответа, и ничего больше - но они могут все еще продолжать обработку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...