如何dynamic地决定请求是否应该通过Express中间件
所有:
我对Epxress来说是个新手,我构build了一个中间件来检查用户凭证,并将其指定为:
var check = function(req, res, next){/* checking user cred*/}
我使用它就像:
app.use(check);
或者像:
app.get("some url", check, function(req, res, next){})
但是只有一件事让我困惑,有时候,我需要跳过同一个处理程序中的check来取决于req.query, 我不知道是否有一种方法(或devise模式)来做到这一点,而没有指定这个条件检查里面检查中间件我只是想检查模块化,专注于其商业逻辑)?
谢谢
对于身份validation,一个典型的模式是拥有一个允许匿名访问的路由集合,还有一个需要身份validation的部分,因此会调用您的中间件。
此外,请查看Passport库以了解您的身份validation问题,并将其很好地集成到Express中。
如果您希望模块化支票中间件,以便您可以在其他地方使用它,则可以很容易地包含某种标志来检查req.query
参数或其他任何您想检查的内容,并使其更通用:
function(req, res, next){ if(!req.query){ // do some kind of check } else { // do a check with req.query } }
那是你想要做什么的?