urlObject 的 NodeJS urlObject.query 属性指定 URL 中的查询字符串部分,不带前导 ASCII 问号 (?),或者由 querystring 模块的 parse() 方法返回的对象。
例如,考虑此 URL“https://user:pass@site.com:8/pa/th?q=val#hash”。
- “?q=val” 是查询字符串部分,但查询属性将排除返回值中的 (?)。
查询属性的返回值取决于传递给 url.parse() 方法的 parseQueryString 参数。
- 如果传递给 parse() 方法的参数是 “true”,则 urlObject.query 属性的返回值将是 {'query' : 'string'} 对象。
- 如果传递给 parse() 方法的参数是 “false”,则 urlObject.query 属性的返回值将为 'query=string'。
查询字符串的解码将按如下方式完成
- 如果 urlObject.query 属性的返回值是一个字符串,则不对查询字符串执行解码。
- 如果 urlObject.query 属性的返回值是一个对象,则将对键对和值对执行解码。
语法
以下是 NodeJS urlObject.query 属性的语法
urlObject.property
参数
此属性不接受任何参数。
返回值
此属性检索不带前导 ASCII 字符的查询字符串或 querystring.parse() 方法返回的对象。
例如果将 “true” 作为参数传递给 url.parse() 方法,则 urlObject.query 属性的结果将在 {'query' : 'string'} 对象中。
下面的示例演示了 NodeJS 查询属性的用法。
const url = require('url');
let address = 'https://user:pass@site.com:80000/pa/th?q=val#hashh';
let result = url.parse(address, true);
console.log(result.query);
输出
正如我们在下面的输出中看到的,query 属性将值返回为 {'query': 'string'} 对象。
例
如果将 “false” 作为参数传递给 url.parse() 方法,则 urlObject.query 属性的结果将采用 'query=string' 格式。
下面的示例演示了 NodeJS 查询属性的用法。
const url = require('url');
let address = 'https://user:pass@site.com:80000/pa/th?q=val#hashh';
let result = url.parse(address, false);
console.log(result.query);
输出
以下是上述代码的输出,其中查询属性将值返回为 'query=string'。
例
如果未使用 parse() 方法解析提供的 URL 字符串,则查询属性将返回 undefined。
在以下示例中,我们尝试在不分析提供的 URL 的情况下使用 query 属性。
const url = require('url');
let address = 'https://user:pass@site.com:80000/pa/th#hashh';
console.log(address.query);
输出
正如我们在下面的输出中看到的,查询属性的结果是未定义的。