【发布时间】:2019-10-23 17:13:24
【问题描述】:
所以我在网上寻找了解如何将附加参数传递给中间件时,我偶然发现了以下问题:Creating a expressjs middleware that accepts parameters
这里的正确答案已经回答了这个
function HasRole(role) {
return function(req, res, next) {
if (role !== req.user.role) res.redirect(...);
else next();
}
}
对于以下路线 `
app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){
})
另外,我知道 express 将 req, res, next 传递给中间件。
现在,我试图理解的是,当我们只将HasRole('Admin') 传递给函数时,我们的返回函数如何具有不同的参数以及它如何接收这些参数。用技术术语来说,这就是所谓的,所以我可能可以在谷歌上找到更多关于它的信息。
更新:考虑这个无节点示例,我有以下功能
function foo(a,b,c) {
return function (d, e, f) {
}
}
我将如何通过d, e, f 在上述函数中返回?
【问题讨论】:
-
它接收参数 when 它被 由 调用它的人调用...
-
函数
foo是返回另一个函数的函数(以d、e和f为参数的函数)。所以, foo 的返回值又可以作为普通函数使用了 -
foo(1,2,3)(4,5,6) -
因为中间件,你会在中间件中找到所有的东西,比如req,body,所有从客户端传递过来的东西。
标签: javascript node.js