已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
6天前关闭
Improve this question
我正在使用Nodejs和“Express js”,现在我正在使用“中间件功能”,这是我目前的代码
const express = require('express')
const app = express()
const myLogger = function (req, res, next) {
console.log('LOGGED')
next()
}
app.use(myLogger)
app.get('/', (req, res) => {
res.send('Hello World!')
})
我对“下一个”参数感到困惑,我有以下关于中间件功能的问题
1.“下一个”有什么用?这是重定向到“下一个中间件功能”吗?如果是,如何处理?
1.如果不存在“第二中间件”,那么会发生什么?
1.如果我们不使用“下一步”,那么会发生什么?
1.我们可以重定向到“next”中的自定义中间件吗?
2条答案
按热度按时间bvk5enib1#
1.是的,调用next很重要,因为这允许express.js移动到下一个中间件,否则它将处于悬空位置,应用程序将无法正常工作。
2)您的请求将到达路由处理程序,您将得到一个消息'Hello World'的响应
3)如果你不调用下一个,请求将被终止,应用程序将保持挂起
4)是的,您可以使用next重定向到自定义中间件函数。无论何时使用参数调用next,expresses都会将其作为错误消息。您可以定义、自定义错误处理中间件,以根据您的需要指导它。
oogrdqng2#
简单地说,
next()
意味着继续第一个匹配路由的路径。如果您从未调用next()
或response,则请求将停留在该中间件上。中间件的存在有两个原因:1.操作数据,您可以添加额外的值到例如
request.body
供以后使用1.阻塞,如果出现意外情况,您可以在不继续路径匹配路由的情况下进行响应。
例如: