NodeJS urlSearchParams.getAll() 方法



URLSearchParams 类的 NodeJS urlSearchParams.getAll() 方法用于获取查询字符串中指定名称的所有值。

URLSearchParams API 提供了一些方法,用于读取和写入 URL 的查询。此类在全局对象上也可用。

让我们考虑一个 YouTube URL ('https://www.youtube.com/watch?t=RSUgBMA-8Ks?t= TSUgRRMA-95'),其中 '?' 后面的部分称为查询段。在此查询中,(t) 是名称,(RSUgBMA-8Ks) 是值。它共同构成了一个名称-值对。同样,查询字符串中有两个名称/值对,它们都具有名称 (t),并且值不同。因此,如果对名称 (v) 使用 getAll() 方法,它将返回所有值 it。

语法

以下是 NodeJS URLSearchParams.getAll() 方法的语法


 URLSearchParams.getAll(name)

参数

  • name:这指定了要返回的参数的名称。

返回值

此方法返回一个数组,其中包含作为参数传递的给定名称的所有值。如果没有名称为 name 的对,则返回一个空数组。

如果要搜索的名称在查询字符串中多次出现,则 NodeJS urlSearchParams.getAll() 方法会将其所有出现的值以数组的形式返回。

在以下示例中,我们尝试获取查询字符串中名为“title”的键的所有值。


const url = require('node:url');

const MyUrl = new URL('https://www.qikepu.com?title=1&title=2&body=3&title=4');
console.log("URL: ", MyUrl.href);

const Params = new URLSearchParams('title=1&title=2&body=3&title=4');
console.log("Query string: " + Params);

console.log("Trying to get all values for the key 'body'.....");
console.log("The value is: " + JSON.stringify(Params.getAll("title")));

输出

正如我们在下面的输出中看到的,NodeJS getAll() 方法返回了名称的所有值 ('title')。

URL: https://www.qikepu.com/?title=1&title=2&body=3&title=4
Query string: title=1&title=2&body=3&title=4
Trying to get all values for the key 'body'.....
The value is: ["1","2","4"]

如果查询字符串中不存在要搜索的名称,则 getAll() 方法将返回一个空数组。

在下面的示例中,我们尝试获取名称的值 ('contactUs')。


const url = require('node:url');

const MyUrl = new URL('https://www.qikepu.com?title=1&header=2&body=3&footer=4');
console.log("URL: ", MyUrl.href);

const Params = new URLSearchParams('title=1&header=2&body=3&footer=4');
console.log("Query string: " + Params);

console.log("Trying to get all values for the key 'contactUs'.....");
console.log("The value is: " + JSON.stringify(Params.getAll("contactUs")));

输出

getAll() 方法返回了一个空数组,因为查询字符串中不存在被搜索的名称。

URL: https://www.qikepu.com/?title=1&header=2&body=3&footer=4
Query string: title=1&header=2&body=3&footer=4
Trying to get all values for the key 'contactUs'.....
The value is: []