如何在express.js中获取请求查询参数的数量?

时间:2016-02-24 11:23:14

标签: javascript arrays express

目前我必须分别检查每个可能存在的参数。

if (req.query.param1 != undefined ) {
}
if (req.query.param2 != undefined ) {
}
if (req.query.param3 != undefined ) {
}
...

3 个答案:

答案 0 :(得分:6)

获取所有查询参数:

Object.keys(req.query)

获取所有参数的数量:

Object.keys(req.query).length

然后你可以遍历所有参数:

for(p in req.query) {
  //... do something
}

UPD:

使用引号包围您的请求以进行正确的查询

curl -X GET "localhost:9090/mypath?param1=123&param2=321"

没有引号终端中的&使命令在后台运行。

答案 1 :(得分:0)

如果您点击/mypath?param1=5&param2=10,那么request.query将会产生{param1: 5, param2:10}

这意味着request.query是一个JavaScript对象,其中key作为参数的名称,value作为参数的值。现在,您可以根据需要对其执行任何操作:查找长度或对其进行迭代,如下所示:

for (var key in request.query) {
  if (request.query.hasOwnProperty(key)) {
    alert(key + " -> " + request.query[key]);
  }
}

仅查找length可能对您不起作用,因为您可能param1param3param2缺失。迭代将是更好的IMO。

答案 2 :(得分:0)

你想要非未定义的参数的数量吗? 它就这么简单;

var no = 0;
for (var key in req.query) { 
    if(req.query[key]) no++;
}