Query String
模块为解析和格式化URL中?后面的参数(查询字符串)提供了4个方法:
- querystring.escape(str)
- querystring.parse(str[, sep[, eq[, options]]])
- querystring.stringify(obj[, sep[, eq[, options]]])
- querystring.unescape(str)
你可以通过下面的方式直接使用此模块:
var querystring = require('querystring');
querystring.escape(str)
用来编码URL参数,Javascript內建的encodeURIComponent()
方法的实现
var str = '中文字符&zhongwenzifu#'; console.log(querystring.escape(str)); // 输出如下 %E4%B8%AD%E6%96%87%E5%AD%97%E7%AC%A6%26zhongwenzifu%23
querystring.parse(str[, sep[, eq[, options]]])
用来解析URL参数,使用默认分隔符&和分配符=
例如:'foo=bar&abc=xyz&abc=123'
将会解析为如下结果
var str = 'foo=bar&abc=xyz&abc=123'; console.log(querystring.parse(str, '&', '=')); // 结果如下 { foo: 'bar', abc: ['xyz', '123'] }
你还可以自定义实现解析过程
// 假设 gbkDecodeURIComponent() 函数已经定义... querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, { decodeURIComponent: gbkDecodeURIComponent })
querystring.stringify(obj[, sep[, eq[, options]]])
将对象格式化为参数字符串
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'
你还可以自定义实现格式化过程
// 假设 gbkEncodeURIComponent() 函数已经定义... querystring.stringify({ w: '中文', foo: 'bar' }, null, null, { encodeURIComponent: gbkEncodeURIComponent })
querystring.unescape(str)
用来解码URL参数,Javascript內建的decodeURIComponent()
方法的实现
var str = '%E4%B8%AD%E6%96%87%E5%AD%97%E7%AC%A6%26zhongwenzifu%23'; console.log(querystring.unescape(str)); // 输出如下 中文字符&zhongwenzifu#
这篇文章目前没有评论