在HTTP的请求中,如果是get请求,经常会遇见参数使用,key1=value1&key2=value2这种形式,在node端如果要这些这种形式,想就需要使用querystring.
在项目中,使用npm install querystring安装这个模块。
querystring可以实现的功能,1)对字符串进行解析querystring.parse(),转化的是对象类型,2)对象类型转化成字符串拼接形式,querystring.stringify();3)字符串进行编码querystring.escape();4)对字符串进行解码 querystring.unescape();
1)字符串解析querystring.parse(str,separator,eq,options)
str ->解析的字符串
separator->分割的样式,默认是&进行分割的
eq ->key和value之间连接的样式,
options-> 这个参数可以配置两个值,maxKeys 代表着 解析的数量 是一个number类型的值,默认是1000,如果传入0,代表着取消解析个数的限制。另外一个参数decodeURIComponent,需要传入一个函数,用于对编码字符进行解码,默认传入的函数式,querystring.unescape();
//字符串解析成 JSON类型
var str = 'name=zhanghui&age=20&sex=man';
var str2 = 'name=zhanghui|age=20|sex=man';
var jsonObj = querystring.parse(str2,'|','=',{maxKeys:3});
console.log('name='+jsonObj.name+'age='+jsonObj.age+'sex='+jsonObj.sex);
2)对象类型转化成字符串类型querystring.stringify(str,separator,eq,options)
这个参数配置和函数parse的传入是一样的,但是,这个只能解析普通的对象类型{key:value}.
//JSON对象拼接成字符串类型
var result = querystring.stringify(jsonObj);
console.log(result+"字符串拼接结果");
var jsonObj2 ={
name:'张辉',
birthday:{
year:"1992",
month:'04',
day:'15'
}
};
var result2 = querystring.stringify(jsonObj2);
console.log(result2+'拼接的结果2');
3)字符串进行编码 querystring.escape()
//编码
var encode = 'name = 张辉;'
var encodeResult = querystring.escape(encode);
console.log(querystring.escape(encode)+"编码数据") ;
4)字符串进行解码querystring.unescape()
//解码数据
var endecode = querystring.unescape(encodeResult);
console.log(endecode+'解码数据');