【问题标题】:compoundjs routes regexCompoundjs 路由正则表达式
【发布时间】:2013-01-23 14:55:50
【问题描述】:

我们可以在路线图中使用正则表达式吗?我正在创建一个简单的文件浏览器。我在/config/routes.js 中设置了这条路线:

map.all('/assets/:folder.:format?', 'assets#index');

但是文件夹参数可以是(例如)Images/Logos,所以我很感兴趣是否可以使用正则表达式。

在我的 ROR 项目中,借助路由器的:contrains 参数,我能够解决类似的问题:

match 'applications/:store/:platform/:identifier/:filename' => 'assets#direct_download',
    :constraints => {
      :store => /[\w.-]+/,
      :platform => /[\w.-]+/,
      :identifier => /[\w.-]+/,
      :filename => /.+/
    }

我找不到任何示例。因此,如果有人能为我澄清这一点,我将不胜感激。

【问题讨论】:

    标签: regex node.js express compoundjs


    【解决方案1】:

    您可以使用以下语法:

    map.all(new RegExp('^\/assets\/(.*)$'), 'assets#index');
    

    然后捕获参数及其索引(从0 开始 - 忽略整个字符串,不像 preg_match 或类似函数):

    // app/controllers/assets_controller.js
    console.log(params[0]);
    

    【讨论】:

    • 好的,你知道吗,有没有可能以某种方式命名参数?
    • @jaromudr 你可以自己修改railway-routes nodejs 模块来解决这个问题。我现在在处理 regexpy-routes 的代码中看不到任何理智:github.com/1602/railway-routes/blob/master/lib/…
    猜你喜欢
    • 2020-10-10
    • 2019-01-01
    • 2014-04-14
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多