這裏主要記下querystring模塊的使用方法。安全
querystring從字面上的意思就是查詢字符串,通常是對http請求所帶的數據進行解析。querystring模塊只提供4個方法,在我看來,這4個方法是相對應的。ui
這4個方法分別是querystring.parse和querystring.stringify,querystring.escape和querystring.unescape。編碼
首先,使用querystring模塊以前,須要require進來:url
1 const querystring = require("querystring");
其次,就能夠使用模塊下的方法了:spa
1 querystring.parse(str,separator,eq,options)翻譯
parse這個方法是將一個字符串反序列化爲一個對象。code
參數:str指須要反序列化的字符串;對象
separator(可省)指用於分割str這個字符串的字符或字符串,默認值爲"&";blog
eq(可省)指用於劃分鍵和值的字符或字符串,默認值爲"=";字符串
options(可省)該參數是一個對象,裏面可設置maxKeys和decodeURIComponent這兩個屬性:
maxKeys:傳入一個number類型,指定解析鍵值對的最大值,默認值爲1000,若是設置爲0時,則取消解析的數量限制;
decodeURIComponent:傳入一個function,用於對含有%的字符串進行解碼,默認值爲querystring.unescape。在官方API的例子中,使用gbkDecodeURIComponent這個方法會報錯,顯示gbkDecodeURIComponent is no defined,這是由於在使用這個gbkDecodeURIComponent這個方法以前須要先進行定義。在API中也寫了Assuming gbkDecodeURIComponent function already exists...這句話的意思是」假設這個gbkDecodeURIComponent方法已經存在」。
例子1,querystring.parse
1 querystring.parse("name=whitemu&sex=man&sex=women"); 2 /* 3 return: 4 { name: 'whitemu', sex: [ 'man', 'women' ] } 5 */ 6 querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2}); 7 /* 8 return: 9 { name: 'whitemu', sex: 'man' } 10 */
2 querystring.stringify(obj,separator,eq,options)
stringify這個方法是將一個對象序列化成一個字符串,與querystring.parse相對。
參數:obj指須要序列化的對象
separator(可省)用於鏈接鍵值對的字符或字符串,默認值爲"&";
eq(可省)用於鏈接鍵和值的字符或字符串,默認值爲"=";
options(可省)傳入一個對象,該對象可設置encodeURIComponent這個屬性:
encodeURIComponent:值的類型爲function,能夠將一個不安全的url字符串轉換成百分比的形式,默認值爲querystring.escape()。
例子2,querystring.stringify
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] }); /* return: 'name=whitemu&sex=man&sex=women' */ querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$"); /* return: 'name$whitemu*sex$man*sex$women' */
3 querystring.escape(str)
escape可以使傳入的字符串進行編碼
例子3,querystring.escape
querystring.escape("name=慕白"); /* return: 'name%3D%E6%85%95%E7%99%BD' */
4 querystring.unescape(str)
unescape方法可將含有%的字符串進行解碼
例子4,querystring.unescape
querystring.unescape('name%3D%E6%85%95%E7%99%BD'); /* return: 'name=慕白' */
總結:
querystring這個模塊相對的仍是比較簡單,僅有4個方法。
querystring.stringify序列化;
querystring.parse反序列化;
querystring.escape編碼;
querystring.unescape解碼;
固然啦,鄙人對於該模塊的研究仍是不深,僅僅對該模塊的API作了簡單的翻譯和加上本身的一些理解,如有錯誤但願可以指正,一塊兒探討。。。