Node.js v26.0.0 說明文件
- Node.js v26.0.0
- 目錄
- 索引
- 關於此說明文件
- 用法與範例
- 斷言測試
- 非同步內容追蹤
- Async hooks
- Buffer
- C++ 擴充套件
- 使用 Node-API 的 C/C++ 擴充套件
- C++ 嵌入器 API
- 子程序
- 叢集
- 命令列選項
- Console
- Crypto
- 除錯器
- 棄用的 API
- Diagnostics Channel
- DNS
- 網域 (Domain)
- 環境變數
- 錯誤
- 事件
- 檔案系統
- 全域變數
- HTTP
- HTTP/2
- HTTPS
- 檢查器
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:moduleAPI - 模組:套件
- 模組:TypeScript
- Net
- Iterable Streams API
- OS
- Path
- 效能勾子 (Performance hooks)
- 權限
- 程序
- Punycode
- 查詢字串
- Readline
- REPL
- 報告
- 單一可執行應用程式
- SQLite
- Stream
- 字串解碼器
- 測試執行器
- 計時器
- TLS/SSL
- 追蹤事件
- TTY
- UDP/資料報
- URL
- 公用工具
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- 工作執行緒
- Zlib
- Zlib 可反覆運算壓縮
- 其他版本
- 選項
Query string#
穩定度:2 - 穩定
node:querystring 模組提供了用於解析與格式化 URL 查詢字串(query string)的工具。可以透過以下方式存取:
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 百分比編碼(percent-encoding),該方式已針對 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>用於界定查詢字串中鍵與值的子字串。預設值:'='。選項 (options)encodeURIComponent<Function>在將 URL 不安全字元轉換為百分比編碼時使用的函式。預設值:querystring.escape()。
querystring.stringify() 方法透過迭代給定 obj 的「自有屬性」(own properties)來產生 URL 查詢字串。
它會序列化在 obj 中傳入的下列型別的值:<string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]>。數值必須是有限的(finite)。任何其他輸入值將被強制轉換為空字串。
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 時不會拋出錯誤的安全替代方案。