Node.js 为什么我们在express中使用中间件函数数组?
有人能解释一下为什么我们在方括号中使用此代码,以及为什么它被分配给一个Node.js 为什么我们在express中使用中间件函数数组?,node.js,express,Node.js,Express,有人能解释一下为什么我们在方括号中使用此代码,以及为什么它被分配给一个常量中间件,我们可以在没有您的情况下使用它吗t常量中间件=[…] const middlewares = [ layout(), express.static(path.join(__dirname,'views')), bodyParser.urlencoded({extended: false}) ] 很抱歉给您带来不便,我不熟悉此字段此代码创建了一个包含3个元素的数组 在本例中,是由3个函数指针
常量中间件,我们可以在没有您的情况下使用它吗t常量中间件=[…]
const middlewares = [
layout(),
express.static(path.join(__dirname,'views')),
bodyParser.urlencoded({extended: false})
]
很抱歉给您带来不便,我不熟悉此字段此代码创建了一个包含3个元素的数组
在本例中,是由3个函数指针组成的数组
我们无法确切地知道您正在查看的代码为什么会有这个数组,但我猜某处有一个系统想要使用这个数组,所以您可以创建这个数组
const用于表示它不会被更改
您应该阅读关于节点中闭包的内容,以便进一步了解闭包的工作原理。您提到的“方括号”用于声明闭包
指示它是一个常量,一旦声明就无法更改
在此上下文中(与您的标记一起),此数组将多个中间件合并为一个单一结构,以便立即应用,通常应用于特定的路由。官方文件中详细说明了这一点:
中间件也可以在数组中声明以实现重用
此示例显示了一个带有中间件子堆栈的阵列,该子堆栈处理
获取对/user/:id路径的请求
function logOriginalUrl (req, res, next) {
console.log('Request URL:', req.originalUrl)
next()
}
function logMethod (req, res, next) {
console.log('Request Type:', req.method)
next()
}
var logStuff = [logOriginalUrl, logMethod]
app.get('/user/:id', logStuff, function (req, res, next) {
res.send('User Info')
})