expressjs:即使未知,如何捕获所有路由参数?

时间:2017-07-19 13:14:27

标签: express routes

让我说我有这条路。

this.app.use('/app/fileasset/ui.html/:view*?', function(req,res) {});

如果我有这个网址:/app/fileasset/ui.html / test / view

然后我可以在req.params中找到它们==> req.params [0](root url,' test')和req.params.view(' view')

问题是:如何捕获未知数量的参数?

例如:/app/fileasset/ui.html / test / view / subview / wtv

如何获得'子视图'和' wtv'在req.params?并且有相同的路线来捕获具有未知数量的参数的更长的网址?

提前致谢

2 个答案:

答案 0 :(得分:1)

如果您执行以下操作,ExpressJS路由允许使用通配符:

this.app.use('/app/fileasset/ui.html/*', function(req,res) {});

然后转到/app/fileasset/ui.html/test/view/subview/wtv之类的网址应该使用"['test/view/subview/wtv']"填充req.params,您可以轻松地在正斜杠上拆分。

答案 1 :(得分:-1)

你是否试过foreq而不是req.params?

req.params.forEach(function (item) {
  someFn(item);
})

或仅用于

for (var i = 0, len = req.params.length; i < len; i++) {
  someFn(req.params[i]);
}