如何区分两条路线,其中一条是“/:param”,另一条是“/ param”

时间:2016-05-31 19:37:03

标签: express url-routing routeparams

我是expressjs的新手,对expressjs中的路由和这些概念了解不多。在阅读它时,我看到可以设置像

这样的路线
route1 = app.get("/:param",callback)

其中param将成为路由参数变量,所有这样的get请求如:“/ foo”或“/ bar”将对应于该路由。

我的问题是:我现在可以有一条路线

route2 = app.get("/param", callback)

app.get("/anyOtherRoute",callback) 

如果是这样,我怎么知道请求是针对route1而不针对route2(反之亦然)?

1 个答案:

答案 0 :(得分:5)

你真的没有。但您可以按顺序定义路线,以便anyOtherRoute具有不同的行为。

例如:

app.get('/anyOtherRoute', doFoo); app.get('/:param', doBar);

如果doFoo在没有致电next()的情况下终止了请求,那么我认为您正在寻找分离。

doFoo将首先被调用,因为express按照定义并添加到应用程序的顺序遍历路径。