【问题标题】:Express.js - Allow infinite subroutes, but at least oneExpress.js - 允许无限的子路由,但至少有一个
【发布时间】:2020-07-01 15:58:22
【问题描述】:

我想允许/example/... 之后的任何子路由。

有效网址示例:

  • /example/一个
  • /example/一/二
  • /example/一/二/三

但是这样做:

server.get('/example/*', (req, res) => {
   // ...
})

也允许/example 没有任何子路由。我想避免这种情况。我该怎么做?有什么办法不使用正则表达式?

非常感谢!

【问题讨论】:

  • 如果有人去/example 没有任何子路由,你希望发生什么?
  • 我正在使用 Next.js,所以它将呈现默认的 pages/example.js 页面
  • ...您不希望这种情况发生吗?
  • 是的,但对于/example/some/subroute,我想以不同的方式处理。我想要的是上面的代码不输入/example,只输入/example/subroute
  • 这能回答你的问题吗? Infinite parameters in express server

标签: javascript node.js express routes


【解决方案1】:

您可以简单地定义两条路由 - 一条用于/example,另一条用于所有/example-subroutes,但您需要确保顺序正确:

app.get('/example', (req, res) => {     
    // render default page
});

app.get('/example/*', (req, res) => {
   // do other stuff
});

【讨论】:

  • 是的,我知道...但是我想避免在上面添加app.get('/example', handler)...但是无论如何,您的答案是有效的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2022-01-13
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多