我正在寻找一种方法(希望已经有一种方法)来读取nodejs中动态路由的参数。 (就像Zend Framework 1默认路由器那样)。
所以我希望有这样的东西:
app.get('/resource/:key/:value/:anotherkey/:differentvalue', function(req, res) {
return res.send('This will print the :differentvalue: '+req.params.anotherkey);
});
但是不必定义所有不同的键和值
答案 0 :(得分:0)
尝试
app.get('/resource/*', function(req, res) {
var list = req.path.split('/').slice(2); // Slice to leave off '/resource/'
var obj {};
async.whilst(
function() { return list.length > 0 },
function(callback) {
obj[list.shift()] = list.shift();
},
function(err) { // return your obj here or do whatever else you need to do }
);
});
答案 1 :(得分:0)
我会将查询字符串用于此特定用例。
所以给出这样的网址:myapp.com/search/?filter_one=param&filter_two=param2
然后在节点中使用URL模块。
var url = require('url');
var parsed_url = url.parse(request.url, true);
var querystring_object = parsed_url.query
//{filter_one: "param", filter_two: "param2"}
//and that object is quite easier to hand off to elastic search