前言
querystring 模块提供了一些实用工具,用于解析与格式化 URL 查询字符串。
一、querystring.parse()
用于将一个查询字符串解析为JS 对象。
const querystring = require('querystring'); let str = 'foo=bar&abc=xyz&abc=123'; console.dir(querystring.parse(str)); //{ foo: 'bar', abc: [ 'xyz', '123' ] }
parse方法一共可以接受四个参数。
querystring.parse(str[, sep[, eq[, options]]])
参数说明:
str:需要解析的查询字符串。
sep:多个键值对之间的分隔符,默认为 '&'。
eq:键名与键值之间的分隔符,默认为 '='。
options:
decodeURIComponent <Function> 当解码查询字符串中百分号编码的字符时使用的函数。默 认为 querystring.unescape():对给定的 str 上的 URL 百分号编码的字符执行解码。。
maxKeys <number> 指定要解析的键的最大数量。默认为 1000。指定为 0 则移除键数的限制。
二、querystring.stringify()
要序列化成一个 URL 查询字符串的对象,通过遍历对象的自有属性,从一个给定的 obj 产生一个 URL 查询字符串。
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }) //foo=bar&baz=qux&baz=quux&corge=
stringify()方法一共可以接收四个参数。
querystring.stringify(obj[, sep[, eq[, options]]])
参数说明
obj <Object> 要序列化成一个 URL 查询字符串的对象。
sep <string> 用于界定查询字符串中的键值对的子字符串。默认为 '&'。
eq <string> 用于界定查询字符串中的键与值的子字符串。默认为 '='。
options:
encodeURIComponent <Function> 当把对 URL 不安全的字符转换成查询字符串中的百分号编码时使用的函数。默认为 querystring.escape()。