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

1 url-routing express routeparams

我是expressjs的新手,对expressjs中的路由和这些概念了解不多.在阅读它时,我看到人们可以设置一条路线

route1 = app.get("/:param",callback)
Run Code Online (Sandbox Code Playgroud)

其中param将成为路由参数变量,所有这样的获取请求如:"/ foo"或"/ bar"将对应于该路由.

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

route2 = app.get("/param", callback)
Run Code Online (Sandbox Code Playgroud)

要么

app.get("/anyOtherRoute",callback) 
Run Code Online (Sandbox Code Playgroud)

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

Rus*_*ear 5

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

例如:

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

如果doFoo在没有打电话的情况下终止请求,next()你会得到我认为你正在寻找的分离.

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