查询字符串
该模块提供了处理查询字符串的辅助函数。
querystring.escape
该转义函数供 querystring.stringify
使用,必要时可以重写。
querystring.parse(str[, sep][, eq][, options])
该方法用于将字符串反序列化为对象,第二和第三个参数分别表示分隔符(默认为 '&')和分配符(默认为 '=')。
options
对象可以包含 maxKeys
属性(默认值为 1000),该属性用于限制处理过的进程数量,如果该属性的值为 0,则表示不限制。
options
对象可以包含 decodeURIComponent
属性(默认值为 querystring.unescape),如有需要可用于解码非 UTF-8 编码的字符串。
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
// Suppose gbkDecodeURIComponent function already exists,
// it can decode `gbk` encoding string
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent })
// returns
{ w: '中文', foo: 'bar' }
querystring.stringify(obj[, sep][, eq][, options])
该方法用于将对象序列化为字符串,第二和第三个参数分别表示分隔符(默认为 '&')和分配符(默认为 '=')。
options
对象可以包含 encodeURIComponent
属性(默认值为 querystring.escape),如有需要可用于转义非 UTF-8 编码的字符串。
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// returns
'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// returns
'foo:bar;baz:qux'
// Suppose gbkEncodeURIComponent function already exists,
// it can encode string with `gbk` encoding
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent })
// returns
'w=%D6%D0%CE%C4&foo=bar'
querystring.unescape
该编码函数供 querystring.parse
使用,必要时可以重写。该函数首先会尝试使用 decodeURIComponent
进行解码,如果解码失败会回退到一个安全状态,不会抛出错误的 URL。