1

我正在寻找一种方法(并希望已经有一个可用的方法)来读取 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);
});

但随后无需定义所有不同的键和值

4

2 回答 2

0

我会为这个特定的用例使用查询字符串。

所以给定一个这样的 URL:myapp.com/search/?filter_one=param&filter_two=param2

然后在 node.js 中使用 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
于 2013-08-28T19:31:59.243 回答
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 }
    );
});
于 2013-08-28T19:23:02.340 回答