概述

querystring 模块提供用于解析和格式化 URL 查询字符串的实用工具。

常用api

parse

将 URL 查询字符串 str 解析为键值对的集合。

格式

  1. querystring.parse(str[, sep[, eq[, options]]])

参数释义

  • str 要解析的 URL 查询字符串。
  • sep 用于在查询字符串中分隔键值对的子字符串。默认值: ‘&’。
  • eq 用于在查询字符串中分隔键和值的子字符串。默认值: ‘=’。
  • options
    • decodeURIComponent 当解码查询字符串中的百分比编码字符时使用的函数。默认值: querystring.unescape()。
    • maxKeys 指定要解析的键的最大数量。指定 0 可移除键的计数限制。默认值: 1000。

    示例

    1. const querystring=require('querystring');
    2. console.log(querystring.parse('foo=bar&abc=xyz&abc=123')); // { foo: 'bar', abc: [ 'xyz', '123' ] }

    stringify

    通过遍历对象的自身属性从给定的 obj 生成 URL 查询字符串。

    格式

    1. querystring.stringify(obj[, sep[, eq[, options]]])

    参数释义

    • obj 要序列化为 URL 查询字符串的对象。
    • sep 用于在查询字符串中分隔键值对的子字符串。默认值: ‘&’。
    • eq 用于在查询字符串中分隔键和值的子字符串。默认值: ‘=’。
    • options
      • encodeURIComponent 当将查询字符串中不安全的 URL 字符转换为百分比编码时使用的函数。默认值: querystring.escape()。
    • 示例

      1. const querystring = require("querystring");
      2. console.log(
      3. querystring.stringify({ foo: "bar", baz: ["qux", "quux"], corge: "" })
      4. );
      5. // 返回 'foo=bar&baz=qux&baz=quux&corge='
      6. console.log(querystring.stringify({ foo: "bar", baz: "qux" }, ";", ":"));
      7. // 返回 'foo:bar;baz:qux'

      escape

      对 URL 查询字符串的特定要求进行了优化的方式对给定的 str 执行 URL 百分比编码,相当于浏览器的 window.encodeURIComponent

      格式

      1. querystring.escape(str)

      参数释义

      • str 需要被转换的字符串

      示例

      1. const querystring = require("querystring");
      2. console.log(querystring.escape("value=我是中文参数"));
      3. // 返回 'value%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0'

      unescape

      在给定的 str 上执行 URL 百分比编码字符的解码,相当于浏览器的 window.decodeURIComponent

      格式

      1. querystring.unescape(str)

      参数释义

      • str 需要被转换的字符串

      示例

      1. const querystring = require("querystring");
      2. console.log(querystring.unescape("value%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0"));
      3. // 返回 'value=我是中文参数'

      其它

      api别名

      • querystring.decode() 函数是 querystring.parse() 的别名。
      • querystring.encode() 函数是 querystring.stringify() 的别名。