req.params为GET路由

时间:2017-09-24 20:21:28

标签: node.js

最初,我正在阅读var myId = req.param.("myId");之类的查询参数,这些参数在控制台日志中抛出了有关已弃用方法的警告消息。

正如其他人看到的警告和其他类似错误所示,我更新了我的代码,使用了一种略有不同的抓取查询参数的变体。

但是,在控制台中打印params时,我得到所有参数的undefined值。

不确定为什么并希望得到一些支持。感谢。

   r.get('/sport*', function depart(req, res) {
      var myId = req.params.myId;
      var sportType = req.params.sportType;
      console.log("print params myID", myId);
      console.log("print params sportTYPE", sportType);
   });
}

1 个答案:

答案 0 :(得分:1)

因此,对于像/sport?myId=123&sportType=football&sportYear=2008这样的路径,您实际上在寻找查询字符串,以下是您的操作方法:

r.get('/sport', function(req, res) {
    var sportType = req.query.sportType;
    var myId = req.query.myId;
    var sportYear = req.query.sportYear;
    console.log("print qS sportTYPE", sportType);
    console.log("print qS sportYear", sportYear);
    console.log("print qS myId", myId);
});

如果你想使用params,你可以用这种方式代表你的uri(我觉得它更漂亮,对搜索引擎也更好):/sport/football/2008?myId=123

你会以这种方式宣布你的路线:

r.get('/sport/:sportType/:sportYear', function(req, res) {
    var myId = req.query.myId;
    var sportType = req.params.sportType;
    var sportYear = req.params.sportYear;
    console.log("print qS sportTYPE", sportType);
    console.log("print qS sportYear", sportYear);
    console.log("print qS myId", myId);
});