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

How to differentiate between 2 routes one of which is "/:param" and other is "/param"

我是expressjs的新手,对expressjs中的路由之类的概念不是很了解。在阅读它时,我看到可以设置一条像

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

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

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

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

app.get("/anyOtherRoute",callback) 

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

你不知道,真的。但是你可以按顺序定义你的路线,这样你对 anyOtherRoute.

有不同的行为

例如:

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

如果 doFoo 在没有调用 next() 的情况下终止请求,您将得到我认为您正在寻找的分离。

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