dav*_*ers 9 routing node.js express
更新:我的问题没有准确地传达我想要实现的目标.我希望匹配/foo,/foo/以及/foo/(例如/foo/asdf/jkl)下的任何内容,而不是具体的给定路径.最初的问题如下.
我想匹配以下路径:
/foo
/foo/bar
/foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
这些也应该有用:
/foo/ -> /foo
/foo/bar/ -> /foo/bar
/foo/bar/baz/ -> /foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
app.get('/foo/*', ...);
Run Code Online (Sandbox Code Playgroud)
但是,这种情况失败了/foo.我知道我可以提供正则表达式而不是字符串,但这肯定是一个常见的要求,所以我会惊讶地发现模式匹配的DSL不适应它.
如果您想以一种模式匹配它们:
app.get('/foo(/bar(/baz)?)?', ...)
Run Code Online (Sandbox Code Playgroud)
/适用于最后允许可选项的默认Express行为.
编辑:怎么样?
app.get('/foo/:dummy?*', ...)
Run Code Online (Sandbox Code Playgroud)
小智 6
我知道这是一个老问题,但我遇到了同样的问题,我想出了这个:
app.get(['/foo', '/foo/*'], ...);
Run Code Online (Sandbox Code Playgroud)
这将匹配/foo、/foo/和 下的任何内容/foo/...。我认为这是一个比正则表达式更具可读性的解决方案,它清楚地传达了意图。
| 归档时间: |
|
| 查看次数: |
5086 次 |
| 最近记录: |