express.js有可变长度参数吗?

时间:2012-07-25 03:02:23

标签: node.js express

e.g。我希望有一条路线:

/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

1 个答案:

答案 0 :(得分: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' ]"