在nodejs中无法获得正确的路由值?

时间:2012-08-01 14:34:26

标签: node.js

我的代码在这里做错了什么,因为我无法获得'qkey'值?

如果我在浏览器中测试'/ search / firstname / daniel',我的回答是:{“qkey”:“daniel”}

app.get('/search/:qkey/:qvalue', function(req, res){
    var qkey = req.params.qkey;
    var qvalue = req.params.qvalue;
    var query = {qkey:qvalue}
    console.log(query);
    res.send(query);
});

2 个答案:

答案 0 :(得分:4)

问题在于您创建query对象的方式。您无法使用大括号语法为属性名称分配动态值。你应该做的是;

var query = {};
query[qkey] = qvalue;

答案 1 :(得分:0)

您可以发送数据进行查看,如下所示:

//in the server side ...
 app.get('/search/:qkey/:qvalue', function(req, res){
    res.write(JSON.stringify({
      qkey:req.params.qkey;
      qvalue:req.params.qvalue;
    }));
 });

并在客户端...调用ajax

$.ajax({
  type:"POST",
  url:"/search/"+qkey+"/"+qvalue,
  success: function(data){
    var string = eval("(" + data + ")");
    //you access to server response with
    console.log(string.qkey+" and "+ string.qvalue);
  }
});