如何区分两条路线,其中一条是“/: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
按照定义和添加到应用程序的顺序遍历路由。
我是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
按照定义和添加到应用程序的顺序遍历路由。