如何获取url参数?

时间:2016-09-20 09:07:58

标签: node.js express

我是Express的新手,我想解析url参数。我的代码如下:

router.get('/', function (req, res) {
  var aCustomerIdValue = req.param.aa;
  console.log('In / Function be called: %s',aCustomerIdValue);
  res.redirect('/checkouts/new');
});

但控制台显示“未定义”。有什么线索吗? 我的快递是4.0。 先谢谢你了!

2 个答案:

答案 0 :(得分:4)

参数类型

req.params

应该是 req.params.aa 而不是req.param.aa - 请参阅:

但它仅适用于":aa"等路径的路径中的router.get('/:aa', ...)参数 - 它会将XXX从请求保存到 {{ GET /XXX

中的1}}

req.query

对于查询参数(最有可能是 GET 请求),请使用req.params.aa - 请参阅:

它会将req.query从请求保存到 XXX

中的 GET /?aa=XXX

req.body

对于请求正文中传递的参数,请使用req.query.aa - 请参阅:

它会在 {{中保存请求的正文中传递的req.body参数(最有可能是 aa 请求) 1}}

req.param()

其中任何一个也有POST,按以下顺序搜索:

  1. req.body.aa
  2. req.param('name')
  3. req.params
  4. 已弃用 - 感谢Ben Fortune在评论中指出 - 请参阅:http://expressjs.com/en/api.html#req.body

    你的例子

    尝试:

    req.body

    如果参数在查询字符串中传递,或者:

    req.query

    如果参数在请求正文中传递。

答案 1 :(得分:1)

确保将body-parser代码放在server文件的routes

之上

喜欢这个

var app=repress();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: false
}));

如果你传递query个参数,那么可以通过

在服务器端获取它
  

req.query

如果您要传递parameters,请通过

获取服务器端
  

req.params