穩(wěn)定性: 3 - 穩(wěn)定
這個(gè)模塊提供了一些處理 query strings 的工具,包括以下方法:
將一個(gè)對(duì)象序列化化為一個(gè) query string 。
可以選擇重寫默認(rèn)的分隔符('&') 和分配符 ('=')。
Options 對(duì)象可能包含 encodeURIComponent 屬性 (默認(rèn):querystring.escape),如果需要,它可以用 non-utf8 編碼字符串。
例子:
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'
將 query string 反序列化為對(duì)象。
可以選擇重寫默認(rèn)的分隔符('&') 和分配符 ('=')。
Options 對(duì)象可能包含 maxKeys 屬性(默認(rèn):1000),用來(lái)限制處理過(guò)的健值(keys)。設(shè)置為 0 的話,可以去掉鍵值的數(shù)量限制。
Options 對(duì)象可能包含 decodeURIComponent 屬性(默認(rèn):querystring.unescape),如果需要,可以用來(lái)解碼 non-utf8 編碼的字符串。
例子:
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' }
escape 函數(shù)供 querystring.stringify 使用,必要時(shí),可以重寫。
unescape函數(shù)供 querystring.parse 使用。必要時(shí),可以重寫。
首先會(huì)嘗試用 decodeURIComponent,如果失敗,會(huì)回退,不會(huì)拋出格式不正確的 URLs。