Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript return如何获取此函数中的参数_Javascript_Node.js - Fatal编程技术网

Javascript return如何获取此函数中的参数

Javascript return如何获取此函数中的参数,javascript,node.js,Javascript,Node.js,因此,我在网上了解如何将附加参数传递给中间件,这时我偶然发现了以下问题: 这里正确的答案回答了这个问题 function HasRole(role) { return function(req, res, next) { if (role !== req.user.role) res.redirect(...); else next(); } } 下面的路线 ` 另外,我知道express将req、res、next传递给中间件 现在,我试图理解的是,当我们只将HasRo

因此,我在网上了解如何将附加参数传递给中间件,这时我偶然发现了以下问题:

这里正确的答案回答了这个问题

function HasRole(role) {
  return function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  }
}
下面的路线 `

另外,我知道express将
req、res、next
传递给中间件

现在,我试图理解的是,当我们只将
HasRole('Admin')
传递给函数时,返回函数如何具有不同的参数,以及它如何接收这些参数。在技术方面,这是什么,所以我可能可以在谷歌上找到更多关于它的信息

<强> Update:考虑此无节点示例,我具有以下函数

function foo(a,b,c) {
  return function (d, e, f) {
  }
}
如何传递
d,e,f
以在上述函数中返回?

HasRole('Admin')
返回函数

该函数立即作为第二个参数传递给
app.get()
(另一个函数作为第三个参数传递)

调用这些函数时,它们被传递参数

调用它们的代码没有显示在您的问题中(因为您没有编写
app.get()
,它是Express的一部分,所以您需要深入研究Express的源代码才能看到它)


JS中的函数是第一类对象。它们可以像任何其他值一样传递

函数给我一个函数(){
返回函数(a、b、c){
log({a,b,c});
}
}
函数调用带有参数的函数(函数){
a_函数(1,2,3);
}
常数x=给我一个函数();
用参数(x)调用函数
HasRole('Admin')
返回一个函数

该函数立即作为第二个参数传递给
app.get()
(另一个函数作为第三个参数传递)

调用这些函数时,它们被传递参数

调用它们的代码没有显示在您的问题中(因为您没有编写
app.get()
,它是Express的一部分,所以您需要深入研究Express的源代码才能看到它)


JS中的函数是第一类对象。它们可以像任何其他值一样传递

函数给我一个函数(){
返回函数(a、b、c){
log({a,b,c});
}
}
函数调用带有参数的函数(函数){
a_函数(1,2,3);
}
常数x=给我一个函数();

用参数(x)调用函数foo
函数是一个返回另一个函数(以d、e和f为参数的函数)。因此,foo的返回值可以再次用作常规函数
foo(1,2,3)(4,5,6)
由于中间件,您将在中间件中找到所有东西,如req、body,以及从客户端传递的所有东西。当调用它的人调用它时,它接收参数。
foo
函数是返回另一个函数的函数因此,foo的返回值可以再次用作常规函数
foo(1,2,3)(4,5,6)
由于中间件的存在,您可以在中间件中找到所有东西,如req、body,以及从客户端传递的所有东西。
function foo(a,b,c) {
  return function (d, e, f) {
  }
}