占位符段在快速中间件安装点

时间:2013-02-21 13:14:30

标签: node.js express connect

使用Express时,我可以在路径字符串中定义带占位符的路径,例如:

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

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

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

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

然后在中间件内部有一些方法来访问映射到:user_id的段是什么?

编辑1:

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

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

当应用程序增长时,看到这种情况会失控,这并不需要太多的想象力。

1 个答案:

答案 0 :(得分:1)

中间件按照添加顺序链接。

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
});