【问题标题】:Express.js Routing wrong routeExpress.js 路由错误的路由
【发布时间】:2017-09-02 15:49:01
【问题描述】:

我有 3 个 express.js 路由

app.get('/packages/:name', (req, res) => {...});
app.get('/packages/search/', (req, res) => {...});
app.get('/packages/search/:name', (req, res) => {...});

第一条和第三条路线运行良好。 但是第二条路线永远不会触发。当我浏览到“localhost/packages/search/”时,它将使用res.params.name = "search/"触发第一条路由

我可以做一个“if”来检查它是否是“search/”,但我认为这不是一个好的解决方案。

我做错了吗?

【问题讨论】:

  • 路由按照它们定义的顺序执行,颠倒你的顺序。
  • 还要考虑/:name 将匹配/search
  • 因为在 packages/:name 中,:name 是动态的,所以 package/search 将进入 packages/:name 中,首先移动 package/search 然后它会起作用

标签: javascript node.js express router


【解决方案1】:

express.js 中的路由是按顺序执行的。

详情Node.js Express route naming and ordering: how is precedence determined?

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多