模組querystring
querystring 模組提供了一些用於解析和序列化URL 查詢參數的實用函數,使用querystring 模組可以方便地將URL 查詢參數解析為物件或字串,也可以將物件序列化為URL 查詢參數字串
以下是querystring
模組的常用函數:
querystring.parse(str[, sep[, eq[, options]]])
: 將URL 查詢參數解析為對象querystring.stringify(obj[, sep[, eq[, options]]])
: 將物件序列化為URL 查詢參數字串
其中,str
就是要解析的URL 查詢參數字串,obj
就是要序列化的物件。
以下範例說明如何使用querystring
模組從URL 解析查詢參數為物件:
1
2
3
4
5
6
7
8const querystring = require('querystring');
const url = 'https://www.example.com/path/to/page?foo=bar&baz=qux';
const search = new URL(url).search; // return '?foo=bar&baz=qux'
const query = querystring.parse(search.slice(1)); // parse query string
console.log(query); // output { foo: 'bar', baz: 'qux' }
以上程式碼先取得了一個URL,然後從中擷取出查詢參數部分,並使用querystring.parse()
函數將其解析為對象,最後將物件列印出來。
接下來,範例說明如何使用querystring
模組將物件序列化為URL 查詢參數字串:
1
2
3
4
5
6
7
8
9
10const querystring = require('querystring');
const obj = {
foo: 'bar',
baz: 'qux'
};
const query = querystring.stringify(obj);
console.log(query); // output "foo=bar&baz=qux"
以上程式碼中,首先定義了一個對象,然後使用querystring.stringify()
函數將其序列化為URL 查詢參數字串,最後將字串列印出來。
可以發現,使用querystring
模組可以方便地對URL 查詢參數進行解析和序列化,減少了對字串的繁瑣處理,提高了程式碼的可讀性和可維護性。
靜態函數
escape
url部件字串安全編碼
1static String querystring.escape(String str);
呼叫參數:
- str: String, 要編碼的url
回傳結果:
- String, 返回編碼的字串
unescape
url安全字串解碼
1static String querystring.unescape(String str);
呼叫參數:
- str: String, 要解碼的url
回傳結果:
- String, 返回解碼的字串
parse
解析query 字串
1
2
3
4static HttpCollection querystring.parse(String str,
String sep = "&",
String eq = "=",
Object opt = {});
呼叫參數:
- str: String, 要解析的字串
- sep: String, 解析時使用的分割字串,預設為&
- eq: String, 解析時使用的賦值字串,預設為 =
- opt: Object, 解析參數,暫未支持
回傳結果:
- HttpCollection, 傳回解碼的對象
stringify
序列化一個物件為query 字串
1
2
3
4static String querystring.stringify(Object obj,
String sep = "&",
String eq = "=",
Object opt = {});
呼叫參數:
- obj: Object, 要序列化的對象
- sep: String, 序列化時所使用的分割字串,預設為&
- eq: String, 序列化時所使用的賦值字串,預設為 =
- opt: Object, 解析參數,暫未支持
回傳結果:
- String, 返回序列化後的字串