next()
- это функция промежуточного программного обеспечения в цикле запроса-ответа приложения.Вы должны вызвать next()
, чтобы передать управление следующей функции промежуточного программного обеспечения.В противном случае запрос останется без ответа.
res.json(), res.send()
- это экспресс-функция, используемая для отправки ответа клиентскому приложению.Другими словами, он использовал эти функции, используемые для построения вашего HTTP-отклика.
return
возвращает ключевое слово из вашей функции, тем самым заканчивая ее выполнение.Это означает, что любые строки кода после того, как он не будет выполнен.
Примечание: И next()
, и res.send()
не остановят выполнение вашей функции.Если добавление return
остановит выполнение функции после запуска обратного вызова.
Используйте return
, чтобы обеспечить остановку выполнения после запуска обратного вызова.В некоторых случаях вы можете использовать res.send
, а затем делать другие вещи.
Пример:
app.use((req, res, next) => {
console.log('This is a middleware')
next()
console.log('This is first-half middleware')
})
app.use((req, res, next) => {
console.log('This is second middleware')
next()
})
app.use((req, res, next) => {
console.log('This is third middleware')
next()
})
Ваш вывод будет:
This is a middleware
This is second middleware
This is third middleware
This is first-half middleware
То есть, он выполняет код ниже next()
после завершения всех функций промежуточного программного обеспечения.
Однако, если вы используете return next()
, он сразу же выскочит обратный вызов и код ниже return next()
в обратном вызове будет недоступен.