compoundjs路由正则表达式

时间:2013-01-23 14:55:50

标签: regex node.js express compoundjs

我们可以在路线图中使用正则表达式吗?我正在创建一个简单的文件浏览器。我在/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 => /.+/
    }

我无法找到任何例子。如果有人能为我澄清这一点,我将感激不尽。

1 个答案:

答案 0 :(得分:0)

您可以使用以下语法:

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

然后使用其索引捕获参数(从0开始 - 忽略整个字符串,与<{strong> preg_match或类似函数不同):

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