Node.js v25.0.0 文件
- Node.js v25.0.0
- 目錄
-
索引
- 斷言測試
- 非同步上下文跟蹤
- 非同步鉤子
- 緩衝區
- C++ 外掛
- 使用 Node-API 的 C/C++ 外掛
- C++ 嵌入器 API
- 子程序
- 叢集
- 命令列選項
- 控制檯
- 加密
- 偵錯程式
- 已棄用的 API
- 診斷通道
- DNS
- 域
- 環境變數
- 錯誤
- 事件
- 檔案系統
- 全域性物件
- HTTP
- HTTP/2
- HTTPS
- 檢查器
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:moduleAPI - 模組:包
- 模組:TypeScript
- 網路
- 作業系統
- 路徑
- 效能鉤子
- 許可權
- 程序
- Punycode
- 查詢字串
- 逐行讀取
- REPL
- 報告
- 單一可執行檔案應用
- SQLite
- 流
- 字串解碼器
- 測試執行器
- 定時器
- TLS/SSL
- 跟蹤事件
- TTY
- UDP/資料報
- URL
- 實用工具
- V8
- 虛擬機器
- WASI
- Web Crypto API
- Web Streams API
- 工作執行緒
- Zlib
- 其他版本
- 選項
查詢字串#
原始碼: lib/querystring.js
node:querystring 模組提供了用於解析和格式化 URL 查詢字串的實用工具。可以透過以下方式訪問:
const querystring = require('node:querystring');
querystring 的效能比 <URLSearchParams> 更高,但它不是一個標準化的 API。當效能不重要或需要與瀏覽器程式碼相容時,請使用 <URLSearchParams>。
querystring.decode()#
querystring.decode() 函式是 querystring.parse() 的別名。
querystring.encode()#
querystring.encode() 函式是 querystring.stringify() 的別名。
querystring.escape(str)#
str<string>
querystring.escape() 方法對給定的 str 執行 URL 百分號編碼,其方式針對 URL 查詢字串的特定要求進行了最佳化。
querystring.escape() 方法由 querystring.stringify() 使用,通常不應直接使用。匯出它的主要目的是允許應用程式程式碼在必要時提供一個替換的百分號編碼實現,方法是將 querystring.escape 賦值給一個替代函式。
querystring.parse(str[, sep[, eq[, options]]])#
str<string> 要解析的 URL 查詢字串sep<string> 用於在查詢字串中分隔鍵值對的子字串。預設值:'&'。eq<string> 用於在查詢字串中分隔鍵和值的子字串。預設值:'='。options<Object>decodeURIComponent<Function> 在解碼查詢字串中經過百分號編碼的字元時使用的函式。預設值:querystring.unescape()。maxKeys<number> 指定要解析的最大鍵數。指定0可移除鍵計數限制。預設值:1000。
querystring.parse() 方法將 URL 查詢字串 (str) 解析為鍵值對的集合。
例如,查詢字串 'foo=bar&abc=xyz&abc=123' 被解析為:
{
"foo": "bar",
"abc": ["xyz", "123"]
}
querystring.parse() 方法返回的物件不從 JavaScript 的 Object 進行原型繼承。這意味著典型的 Object 方法,如 obj.toString()、obj.hasOwnProperty() 等都沒有定義,也無法工作。
預設情況下,查詢字串中經過百分號編碼的字元將被假定為使用 UTF-8 編碼。如果使用其他字元編碼,則需要指定一個替代的 decodeURIComponent 選項:
// Assuming gbkDecodeURIComponent function already exists...
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent });
querystring.stringify(obj[, sep[, eq[, options]]])#
obj<Object> 要序列化為 URL 查詢字串的物件sep<string> 用於在查詢字串中分隔鍵值對的子字串。預設值:'&'。eq<string> 用於在查詢字串中分隔鍵和值的子字串。預設值:'='。optionsencodeURIComponent<Function> 在查詢字串中將 URL 不安全字元轉換為百分號編碼時使用的函式。預設值:querystring.escape()。
querystring.stringify() 方法透過迭代給定 obj 的“自有屬性”來生成一個 URL 查詢字串。
它會序列化 obj 中傳入的以下型別的值:<string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]>。數值必須是有限的。任何其他輸入值都將被強制轉換為空字串。
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// Returns 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// Returns 'foo:bar;baz:qux'
預設情況下,查詢字串中需要進行百分號編碼的字元將被編碼為 UTF-8。如果需要其他編碼,則需要指定一個替代的 encodeURIComponent 選項:
// Assuming gbkEncodeURIComponent function already exists,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent });
querystring.unescape(str)#
str<string>
querystring.unescape() 方法對給定的 str 執行 URL 百分號編碼字元的解碼。
querystring.unescape() 方法由 querystring.parse() 使用,通常不應直接使用。匯出它的主要目的是允許應用程式程式碼在必要時提供一個替換的解碼實現,方法是將 querystring.unescape 賦值給一個替代函式。
預設情況下,querystring.unescape() 方法會嘗試使用 JavaScript 內建的 decodeURIComponent() 方法進行解碼。如果解碼失敗,它將使用一個更安全的等效方法,該方法不會因格式錯誤的 URL 而丟擲錯誤。