文章目录
一、querystring模块的作用
对http请求所带的数据进行解析,可以把querystring参数解析为一个对象
二、querystring模块的方法
1.querystring.parse(str,separator,eq,options)
parse这个方法是将一个字符串反序列化为一个对象。
参数:
str指需要反序列化的字符串;
separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&“;
eq(可省)指用于划分键和值的字符或字符串,默认值为”=";
options(可省)该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性:
- maxKeys:传入一个number类型,指定解析键值对的最大值,默认值为1000,如果设置为0时,则取消解析的数量限制;
- decodeURIComponent:传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。在官方API的
var querystring=require('querystring')
var url=require('url')
var urlobj=url.parse("http://www.baidu.com/home/index.html?count=20&user=karen#top")
var query=querystring.parse(urlobj.query)
console.log(query)
这个方法相当于url模块的第二个参数设置为true,然后取query属性值
2.querystring.stringify(obj,separator,eq,options)
stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。
参数:
obj指需要序列化的对象
separator(可省)用于连接键值对的字符或字符串,默认值为"&“;
eq(可省)用于连接键和值的字符或字符串,默认值为”=";
options(可省)传入一个对象,该对象可设: encodeURIComponent这个属性:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.esca
var querystring=require('querystring')
var obj={
count:20,
user:"karen"
}
var query=querystring.stringify(obj,"*","%")
console.log(query)
3 querystring.escape(str)
escape可使传入的字符串进行编码
var querystring=require('querystring')
var query=querystring.escape("user=杰克")
console.log(query)
4 querystring.unescape(str)
unescape方法可将含有%的字符串进行解码
var querystring=require('querystring')
var query=querystring.unescape("user%3D%E6%9D%B0%E5%85%8B")
console.log(query)