Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查Express.js/Node.js中的查询字符串是否有值?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何检查Express.js/Node.js中的查询字符串是否有值?

Javascript 如何检查Express.js/Node.js中的查询字符串是否有值?,javascript,node.js,express,Javascript,Node.js,Express,如何检查传递给Express.js应用程序的查询字符串是否包含任何值?如果我有一个API URL,它可以是:http://example.com/api/objects或http://example.com/api/objects?name=itemName,哪些条件语句用于确定我处理的是哪一个 下面是我当前的代码,它的计算结果总是“应该没有字符串”选项 if (req.query !== {}) { console.log('should have no query string');

如何检查传递给Express.js应用程序的查询字符串是否包含任何值?如果我有一个API URL,它可以是:
http://example.com/api/objects
http://example.com/api/objects?name=itemName
,哪些条件语句用于确定我处理的是哪一个

下面是我当前的代码,它的计算结果总是“应该没有字符串”选项

if (req.query !== {}) {
    console.log('should have no query string');
}
else {
    console.log('should have query string');
}

如果要检查是否没有查询字符串,可以执行正则表达式搜索

if (!/\?.+/.test(req.url) {
    console.log('should have no query string');
}
else {
    console.log('should have query string');
}
如果你正在寻找一个参数,试试这个

if (!req.query.name) {
    console.log('should have no query string');
}
else {
    console.log('should have query string');
}

您只需检查
对象中键的长度,如下所示

Object.keys(req.query).length === 0

旁注:你是在以错误的方式暗示if-else

if (req.query !== {})     // this will run when your req.query is 'NOT EMPTY', i.e it has some query string.
我们可以使用下划线JS

其中内置了函数isEmpty(obj)。这将返回true/false

因此,代码如下所示:-

const underscore = require('underscore');
console.log(underscore.isEmpty(req.query));

我通常检查查询字符串中的变量是否已定义。在ExpressJS中使用url包可以做到:

var aquery = require('url').parse(req.url,true).query;

if(aquery.variable1 != undefined){
  ...
  ....
  var capturedvariablevalue = aquery.variable1;
  ....
  ....

}
else{
  //logic for variable not defined
  ...
  ...
  //
}

不确定
node
是否支持此操作,但您可以使用检查
req.query
的长度是否大于0。是否使用express?谢谢!是的,那个错误是我在转换问题的真实代码时犯的错误。哥们,下划线早就不存在了。使用lodash。