querystring模塊詳解


querystring模塊用於處理query字符串,包含以下方法:

  • parse、decode
  • escape
  • unescape
  • encode、stringify

parse、decode方法

parse與decode方法是一樣的,都用於將query字符串解析成對象,例如:

> var qs = require("querystring") > qs.parse("a=1&b=2&c=3") { a: "1", b: "2", c: "3"} 

注意:stringify返回的是字符串類型,而parse非字符串類型;傳入的url不能包含?。

parse方法還有三個可選參數,分別是分隔符(默認為&),賦值符(默認為=),以及配置對象,配置對象又有兩個可選參數,分別是````maxKeys(最多能解析多少個鍵值對)和decodeURIComponent(用於解碼非utf-8編碼字符串,默認為querystring.unescape```)。
例如:

querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, { decodeURIComponent: gbkDecodeURIComponent }) // returns { w: '中文', foo: 'bar' } 

stringify、encode方法

這兩個方法的作用也是一樣的,用於將對象轉換成query字符串。如果屬性值不是string、boolean和number中的一種,它就不能序列化,返回內容中的關鍵字對應的值為空。
例如:

> var obj = {a:1, b:2, func: function(){console.log("func")}} undefined > qs.stringify(obj) 'a=1&b=2&func=' > qs.encode(obj) 'a=1&b=2&func=' 

同樣的,stringify或者encode方法也有三個可選參數,分別是分隔符(默認為&),賦值符(默認為=),以及配置對象,配置對象可包含屬性decodeURIComponent(用於解碼非utf-8編碼字符串,默認為querystring.escape)。
例如:

// Suppose gbkEncodeURIComponent function already exists, // it can encode string with `gbk` encoding querystring.stringify({ w: '中文', foo: 'bar' }, null, null, { encodeURIComponent: gbkEncodeURIComponent }) // returns 'w=%D6%D0%CE%C4&foo=bar' 

encode

參數編碼

> var qs = require("querystring") > qs.escape("中國") '%E4%B8%AD%E5%9B%BD' 

unescape

參數解碼

> var param = '%E4%B8%AD%E5%9B%BD' undefined > qs.unescape('%E4%B8%AD%E5%9B%BD') '中國'


免責聲明!

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



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