当前位置: 首页 > 面试题库 >

创建一个接受参数的expressjs中间件

孔阳炎
2023-03-14
问题内容

我正在尝试创建一个可以接受参数的中间件。如何才能做到这一点?

app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){

})

HasRole = function(role, req, res, next){
   if(role != user.role){
      res.redirect('/NotInRole);
   }

   next();
}

问题答案:
function HasRole(role) {
  return function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  }
}

我还想确保我不会为同一函数制作多个副本:

function HasRole(role) {
  return HasRole[role] || (HasRole[role] = function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  })
}


 类似资料:
  • 在Linux或Mac上运行带有命令行参数的Node.js脚本的正确语法是什么? 要在没有参数的情况下运行脚本,我只需使用命令node stuff。但是在这种情况下,我想运行一个名为stuff的脚本。js带有参数“blah”、“hee”、“woohoo!” 。

  • 考虑一个用例,我有一个类似 现在我怎么能有 2 种不同类型的案例 用例-1 我如何接受swagger中的类形式的上述查询参数,我知道我们可以在swagger中将其定义为不同的单独参数,如下所示 但是使用这个swagger创建了一个带有字符串或整数参数的rest方法,拥有这么多的多个参数可能不是一个好主意,所以我强烈希望它创建一个如下所示的类,而我的rest是用这个类对象生成的。我如何将这个类应用到

  • 问题内容: 我已经有一个工作正常的HTTP代理服务器,可以处理多个HTTP请求。现在我的问题是如何处理https请求? 这是我正在使用的简化代码: 和ClientHandler } 我确实确实尝试搜索过,但是遇到SSL隧道,证书,握手,SSLSocket,SSLFactory,trustStore等问题,但是仍然无法正常工作。我只需要知道我需要什么,以及建立与启用SSL的Web服务器的连接的步骤。

  • 问题内容: 我试图通过Python模块进行控制。 我想为当前的运行时以及永久配置添加一个IP地址到受信任的区域。 以下是dbus界面的文档:http : //manpages.ubuntu.com/manpages/wily/man5/firewalld.dbus.5.html 什么有效:运行时配置 我可以将其添加到运行时配置中: 很简单 什么不起作用:永久配置 事实证明,将其添加到永久配置中比较

  • 请编写一个名为lastElement的函数,该函数接受单个数组参数。函数应返回数组的最后一个元素(不删除该元素)。如果数组为空,则函数应返回null。 lastElement([3,5,7])//7 lastElement([1])//1 lastElement([])//null 我对最后一部分感到困惑,如果数组为空,函数将返回null。

  • 我看遍了整个网络,所有我尝试过的东西都没用。。。。 我发现我可以使用一些JTextFormatterField,但它不起作用。 然后我发现我可以将DocumentFilter与正则表达式一起使用,我所做的是: 但它不起作用。。。它只接受数字。我希望它也能接受点。我还需要它不要以点开头,也不要以点结尾。 我做错了什么?