ExpressJSvariables最后的参数数量

我希望我的快速应用程序与file/afile/a/b/c匹配请求, file/a后面的variables数目至less为1。

我试过这个:

 app.get('/file/:path?*', function(req,res){ res.send(req.params.path); }); 

但结果是:

 $ curl localhost:3000/file/a a $ curl localhost:3000/file/a/b a 

如何通过不使用req.query.splice(1)来获取整个查询? 我希望代码更具可读性,这种拼接在维护时很容易被遗忘。

看看他们的文档 ,有一条关于它的文字 :

正则expression式也可以使用,如果你有非常特殊的限制,比如“GET / commits / 71dbb9c”以及“GET /commits/71dbb9c..4c084f9”。

 app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){ var from = req.params[0]; var to = req.params[1] || 'HEAD'; res.send('commit range ' + from + '..' + to); }); 

这应该可以解决你的问题:)