占位符段在快递中间件挂载点

使用Express时,我可以在路由string中使用占位符来定义路由,如下所示:

app.get("/users/:user_id/photos", function(req,res){<blah>}); 

然后在我的处理程序中,我可以使用req.params["user_id"]来获取URL中的任何内容,并在我的请求中使用它。

中间件可以挂载在某些path上,只有匹配该path的请求才会使用中间件。 我可以在中间件的装载path中使用占位符吗? 例如,我可以做些什么:

 app.use("/users/:user_id/photos", <middleware>); 

然后在中间件里面有一些访问映射到的段的方法:user_id是?

编辑1:

我知道,我可以把中间件直接放在路由声明中,àla:

 app.get("/users/:user_id/photos", <middleware>, function(req,res){<blah>}); 

随着应用程序的不断增长,看到这种情况会如何失控,并没有太多的想象。

中间件按您添加的顺序链接。

 middleware = function(req,res,next){ if(valid(req)) next(); else res.send(400, "Emergerd"); } // First middleware app.get("/users/:user_id/photos", middleware); app.get("/users/:user_id/photos", function(req,res){ // function after middleware });