2012-07-25 95 views
1

例如我想有這樣一個路徑:Express.js有可變長度參數嗎?

/mock/:level1/:level2/(:params)* 

匹配

/mock/a/b 
/mock/a/b/p1 
/mock/a/b/p1/p2 
/mock/a/b/p1/p2/p3 

params在第4行的值是p1/p2/p3,然後我可以做params.split("/")

編輯:

Flask.py可以做到這一點,這正是我想要的。它存在於express.js中嗎?

@app.route('/wcfmock/<level1>/<level2>/<level3>/<path:params>') 
def catch_all(level1, level2, level3, params): 
    return 'You want params: %s' % params 

回答

2

Express處理這個。從http://expressjs.com/guide.html#routing

"/files/*" 
/files/jquery.js 
/files/javascripts/jquery.js 

所以,在你的榜樣,(在CoffeeScript中)

util = require "util" 

app.get '/a/b/c/*', (req, res) -> 
    res.json util.inspect(req.params) 

假設一個應用程序結構將端口8080 ...

http://localhost:8080/a/b/c/d/e/f 

將返回

"[ 'd/e/f' ]" 
+0

謝謝,我正在找那個。 – hbrls 2012-07-26 01:49:40