querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。
这4个方法分别是
querystring.parse
parse这个方法是将一个字符串反序列化为一个对象。
参数:str指需要反序列化的字符串; separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";
querystring.parse("name=whitemu&sex=man&sex=women");
/*{ name: 'whitemu', sex: [ 'man', 'women' ] }*/
querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
/*{ name: 'whitemu', sex: 'man' }*/
querystring.stringify
stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。
参数:obj指需要序列化的对象 separator(可省)用于连接键值对的字符或字符串,默认值为"&"; eq(可省)用于连接键和值的字符或字符串,默认值为"="; options(可省)传入一个对象,该对象可设置encodeURIComponent这个属性: encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape();
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] });
/* 'name=whitemu&sex=man&sex=women'*/
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$");
/*'name$whitemu*sex$man*sex$women'*/
querystring.escape
escape可使传入的字符串进行编码
querystring.escape("name=老罗");
// name%3D%E8%80%81%E7%BD%97'
querystring.unescape。
unescape方法可将含有%的字符串进行解码
querystring.unescape('name%3D%E8%80%81%E7%BD%97');
// 'name=慕白'