占位符段在快递中间件挂载点
使用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 });