Как работает функция middleware node.js next () без аргументов? - PullRequest
0 голосов
/ 17 октября 2018

Функции промежуточного программного обеспечения имеют подпись function (req, res, next), но в Express вызов next() не содержит аргументов.Как это так?См. Следующий пример из образца документации

var express = require('express')
var app = express()

var myLogger = function (req, res, next) {
  console.log('LOGGED')
  next()
}

app.use(myLogger)

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000)

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

1 Ответ

0 голосов
/ 18 октября 2018

Документы описывают третий аргумент, условно названный next, как

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

Youможет показаться похожим на обычный аргумент в стиле обратного вызова node.js, предоставляемый большинству асинхронных функций (без обещаний).Когда ваша функция промежуточного программного обеспечения выполняет свою синхронизацию или асинхронную работу, она должна вызвать next, чтобы указать экспресс-маршрутизатору, что она выполнена.Этот аргумент может называться done или callback, как мы часто видим в других библиотеках и примерах node.js, но называется next, чтобы дать подсказку разработчику, что цепочка промежуточного программного обеспечения продолжит выполнение (другое промежуточное программное обеспечение можетбыть вызванным после этого).

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