javascript - 快速路由中的 `/:foo*` 和 `/:foo(.*)` 有什么区别?

标签 javascript express

在 express 中,我们可以用一些路径定义一些端点:

app.get('/:foo*', function(req, res) { ... });

app.get('/:foo(.*)', function(req, res) { ... });

这两条路径很相似,它们有什么区别?

最佳答案

* 匹配零个或多个前面的标记

给定字符串 /:foo/apple/banana/:foo/:1234

/:foo* matches: /:foo/apple/banana/:foo/:1234
                ^^^^^             ^^^^^

(.*) 是一个捕获组,它将匹配所有 0 个或多个前面的字符。有问题的字符是一个通配符,这意味着当我们看到 /:foo 时,我们将继续匹配,直到到达字符串的末尾

给定字符串 /hello/world/:foo/bar?id=123

/:foo(.*) matches /hello/world/:foo/bar?id=123
                              ^^^^^^^^^^^^^^^^

关于javascript - 快速路由中的 `/:foo*` 和 `/:foo(.*)` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861777/

相关文章:

node.js - 在自定义中间件中使用 Connect\Express 中间件

javascript - Express 尝试从错误的文件夹中提取资源

javascript - 如何获取 onclick 函数在 JavaScript 中被调用的位置

javascript代码填充html段落

node.js - Monk - 查询后数据去了哪里?

javascript - AJAX错误: 400 Bad Request

node.js - Express.JS : Logout without destroying the session

javascript - 扩展另一个类时,prototype instanceof 为 false

php - 在 PHP、linux openssl 或其他任何工具上验证 x509 签名文本

javascript - 如何通过名称访问数组?