2011-12-14 91 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; 
});