NodeJS - urlObject.query 属性



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'} 对象。

{ q: 'val' }

如果将 “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'。

q=val

如果未使用 parse() 方法解析提供的 URL 字符串,则查询属性将返回 undefined。

在以下示例中,我们尝试在不分析提供的 URL 的情况下使用 query 属性。


const url = require('url');
let address = 'https://user:pass@site.com:80000/pa/th#hashh';
console.log(address.query);

输出

正如我们在下面的输出中看到的,查询属性的结果是未定义的。

undefined