2011-12-14 138 views
36

比方说,我得到这样的路线:的Node.js /快速路由使用get PARAMS

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 

不是。所以我的问题是:我怎样才能以不同的顺序获得相同的变量?

+1

你不`文件/迷你/ json`是`格式== mini`和`型接收它== JSON `。网址不是无序的包包参数 – Raynos 2011-12-14 15:38:08

回答

110

您的路线也不行,应该是这样的(用“:”)

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

你也不能互换不幸参数顺序。 有关req.params(和req.query)的更多信息,请查看API参考here

+0

alessioalex谢谢你的回应! – Erik 2011-12-14 16:31:46

+1

// var sanitizer = require('sanitizer'); var format = sanitizer.escape(req.params。format);你真的应该清理结果。否则你的网站有一个巨大的漏洞 – user3806549 2015-10-12 18:36:21

17

考虑去为常用格式domain.com/test?format=json&type=mini,那么你可以很容易地通过

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