阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js new URLSearchParams

      new URLSearchParams()

      实例化一个新的空的URLSearchParams对象。

      new URLSearchParams(string)

      • string < string> 一个查询字符串

      将string解析成一个查询字符串, 并且使用它来实例化一个新的URLSearchParams对象. 如果string以'?‘打头,则’?‘将会被忽略.

      const { URLSearchParams } = require('url');
      let params;
      
      params = new URLSearchParams('user=abc&query=xyz');
      console.log(params.get('user'));
        // 输出 'abc'
      console.log(params.toString());
        // 输出 'user=abc&query=xyz'
      
      params = new URLSearchParams('?user=abc&query=xyz');
      console.log(params.toString());
        // 输出 'user=abc&query=xyz'
      

      new URLSearchParams(obj)

      • 新增于: v7.10.0

      obj < Object> 一个表示键值对集合的对象 通过使用查询哈希映射实例化一个新的URLSearchParams对象, obj的每一个属性的键和值将被强制转换为字符串。

      请注意: 和 querystring 模块不同的是, 在数组的形式中,重复的键是不允许的。数组使用array.toString()进行字符串化时,只需用逗号连接所有的数组元素即可。

      const { URLSearchParams } = require('url');
      const params = new URLSearchParams({
        user: 'abc',
        query: ['first', 'second']
      });
      console.log(params.getAll('query'));
        // 输出 [ 'first,second' ]
      console.log(params.toString());
        // 输出 'user=abc&query=first%2Csecond'
      

      new URLSearchParams(iterable)

      新增于: v7.10.0

      • iterable一个元素时键值对的迭代对象

      以一种类似于Map的构造函数的迭代映射方式实例化一个新的URLSearchParams对象。iterable可以是一个数组或者任何迭代对象。这就意味着iterable能够使另一个URLSearchParams,这种情况下,构造函数将简单地根据提供的URLSearchParams创建一个克隆URLSearchParams。iterable的元素是键值对,并且其本身也可以是任何迭代对象。

      允许重复的键。

      const { URLSearchParams } = require('url');
      let params;
      
      // Using an array
      params = new URLSearchParams([
        ['user', 'abc'],
        ['query', 'first'],
        ['query', 'second']
      ]);
      console.log(params.toString());
        // 输出 'user=abc&query=first&query=second'
      
      // 使用Map对象
      const map = new Map();
      map.set('user', 'abc');
      map.set('query', 'xyz');
      params = new URLSearchParams(map);
      console.log(params.toString());
        // 输出 'user=abc&query=xyz'
      
      // 使用generator函数
      function* getQueryPairs() {
        yield ['user', 'abc'];
        yield ['query', 'first'];
        yield ['query', 'second'];
      }
      params = new URLSearchParams(getQueryPairs());
      console.log(params.toString());
        // 输出 'user=abc&query=first&query=second'
      
      // 每个键值对必须有两个元素
      new URLSearchParams([
        ['user', 'abc', 'error']
      ]);
        // 抛出 TypeError [ERR_INVALID_TUPLE]:
        //        每一个键值对必须是迭代的[键,值]元组
      

      更多内容请参考:Node.js URL,或者通过 点击对应菜单 进行查看;


      目录
      目录