nodejs querystring模塊


這里主要記下querystring模塊的使用方法。

querystring從字面上的意思就是查詢字符串,一般是對http請求所帶的數據進行解析。querystring模塊只提供4個方法,在我看來,這4個方法是相對應的。

這4個方法分別是querystring.parse和querystring.stringify,querystring.escape和querystring.unescape。

首先,使用querystring模塊之前,需要require進來:

1 const querystring = require("querystring");

其次,就可以使用模塊下的方法了:

querystring.parse(str,separator,eq,options)

parse這個方法是將一個字符串反序列化為一個對象。

參數:str指需要反序列化的字符串;

   separator(可省)指用於分割str這個字符串的字符或字符串,默認值為"&";

   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 */
復制代碼

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'
*/
復制代碼

querystring.escape(str)

escape可使傳入的字符串進行編碼

例子3,querystring.escape

querystring.escape("name=慕白");
/*
return:
'name%3D%E6%85%95%E7%99%BD'
*/

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解碼;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM