【问题标题】:How to differentiate between 2 routes one of which is "/:param" and other is "/param"如何区分两条路线,其中一条是“/:param”,另一条是“/param”
【发布时间】:2016-05-31 19:37:02
【问题描述】:

我是expressjs的新手,对expressjs中的路由和此类概念不太了解。在阅读它时,我看到可以设置类似

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

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

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

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

app.get("/anyOtherRoute",callback) 

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

【问题讨论】:

    标签: express url-routing routeparams


    【解决方案1】:

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

    例如:

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

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

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

    【讨论】:

    • 更具体地说,快速路线是自上而下评估的,我会更新您的答案以指定而不是“按这样的顺序定义您的路线”,因为这有点含糊。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 2011-12-26
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多