querystring

2,294 阅读1分钟

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=慕白'