带有params的Node.js / Express路由

时间:2011-12-14 15:02:43

标签: node.js express

让我说我得到这样的路线:

app.get('/documents/format/type', function (req, res) {
   var format = req.params.format,
       type = req.params.type;
});

所以,如果我提出像

这样的请求
http://localhost:3000/documents/json/mini

在我的格式和类型变量中将分别为'json'和'mini',但如果我提出请求

http://localhost:3000/documents/mini/json

不。所以我的问题是:如何以不同的顺序获得相同的变量?

2 个答案:

答案 0 :(得分:130)

你的路线不行,应该是这样的(用':')

app.get('/documents/:format/:type', function (req, res) {
   var format = req.params.format,
       type = req.params.type;
});

不幸的是,您无法互换参数顺序。 有关req.params(和req.query)的详细信息,请查看api参考here

答案 1 :(得分:30)

对于domain.com/test?format=json&type=mini格式等查询参数,您可以通过 - req.query轻松接收它。

app.get('/test', function(req, res){
  var format = req.query.format,
      type = req.query.type;
});