目前我必须分别检查每个可能存在的参数。
if (req.query.param1 != undefined ) {
}
if (req.query.param2 != undefined ) {
}
if (req.query.param3 != undefined ) {
}
...
答案 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¶m2=321"
没有引号终端中的&
使命令在后台运行。
答案 1 :(得分:0)
如果您点击/mypath?param1=5¶m2=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
可能对您不起作用,因为您可能param1
和param3
,param2
缺失。迭代将是更好的IMO。
答案 2 :(得分:0)
你想要非未定义的参数的数量吗? 它就这么简单;
var no = 0;
for (var key in req.query) {
if(req.query[key]) no++;
}