node 中 querystring 模块的使用
使用 querystring 模块之前,需要先引入这一模块:
1const querystring = require("querystring");
以下将列举这些方法:
- querystring.parse(str[, sep[, eq[, options]]])
- querystring.stringify(obj[, sep[, eq[, options]]])
- querystring.escape(str)
- querystring.unescape(str)
一个一个运行看看
querystring.parse(str[, sep[, eq[, options]]])
它将 URL 查询字符串形如 foo=bar&abc=xyz&abc=123
解析为键值对的集合 {foo: 'bar', abc: ['xyz', '123']}
它包含几个参数:
- str 这是唯一的必选参数,放置需要解析的查询字符串
- sep 可选,放置分割键值对的字符串,默认为
&
- eq 可选,放置分割键和值的字符串,默认为
=
- options 可选
- decodeURIComponent 对百分比编码字符进行解码时使用的函数,默认是 querystring.unescape() 这个函数下面会提及
- maxKeys 解析的键的最大数量,默认为 1000,如果设置 0 代表移除限制
一个例子:
1> querystring.parse('foo=bar&abc=xyz&abc=123')
2[Object: null prototype] { foo: 'bar', abc: [ 'xyz', '123' ] }
querystring.stringify(obj[, sep[, eq[, options]]])
它的功能和上一个方法相对。它会迭代给定 obj
如 {foo: 'bar', abc: ['xyz', '123']}
的所有属性,生成 URL 查询字符串 foo=bar&abc=xyz&abc=123
它包含几个参数:
- obj 这是要转化为 URL 查询字符串的对象,是必选参数
- sep 可选,放置分割键值对的字符串,默认为
&
- eq 可选,放置分割键和值的字符串,默认为
=
- options
- encodeURIComponent 将 URL 中的不安全字符如 汉字 转换为百分比编码时使用的函数
一个板栗:
1> querystring.stringify({foo: 'bar', abc: [ 'xyz', '123' ]})
2'foo=bar&abc=xyz&abc=123'
querystring.escape(str)
对给定的 str
执行 URL 百分比编码
如:
1> querystring.escape("网站hxhen")
2'%E7%BD%91%E7%AB%99hxhen'
querystring.unescape(str)
这是百分比编码的解码
如:
1> querystring.unescape('%E7%BD%91%E7%AB%99hxhen')
2'网站hxhen'
这两个百分比编解码的函数一般不会直接调用,而是在前两个 parse
和 stringify
方法中间接使用。
以上。
移动端体验更佳~