请问express.js有可变长度参数吗?
例如我想要有一个像这样的路线:
/mock/:level1/:level2/(:params)*
匹配
/mock/a/b /mock/a/b/p1 /mock/a/b/p1/p2 /mock/a/b/p1/p2/p3
而第4行中params
的值是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
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' ]"