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

创建一个接受参数的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。

  • 我正在开发一个数独小程序,我想制作它的单元格(扩展JTextField),以便它只接受0-9和长度为1之间的整数。稍后我会对它进行更多限制(以便它符合游戏规则)。我从: 在这里,我试图过滤输入,对于开始,我只是试图将其限制为整数和一个数字,但似乎我可以输入任意多的数字,而最后一行不会被触发。 想在这里得到一些帮助,谢谢: