• Node.js Video Tutorials

Node.js - querystring.stringify() 方法



Node.js querystring.stringify() 方法透過迭代物件的自身屬性,從提供的物件生成 URL 查詢字串。此方法可以序列化物件中傳遞的值,例如 字串、數字、大整數、布林值、字串陣列、數字陣列、布林值陣列和大整數陣列

在序列化過程中,查詢字串的百分比編碼字元預設情況下將假定使用 UTF-8 編碼。必須指定 decodeURIComponent 選項才能解碼其他字元編碼。

語法

以下是 Node.js querystring.stringify() 方法 的語法:

querystring.stringify(obj[, sep[, eq[, options]]])

引數

此方法接受四個引數。如下所述。

  • str − 此引數指定要序列化為 URL 查詢字串的物件。

  • sep − 此引數描述一個子字串,用於在查詢字串中定義鍵值對。預設值為 '&'。

  • eq − 此引數描述一個子字串,用於在查詢字串中定義鍵和值。預設值為 '='。

  • options − 這是一個物件,允許修改方法的行為。以下對此物件的屬性進行了描述:

    • encodeURIComponent − 此函式用於將 URL 不安全的字元轉換為查詢字串中的百分比編碼。預設情況下,它是 querystring.esacpe()。

返回值

此方法透過迭代物件的“自身屬性”,從提供的 obj 返回一個 URL 查詢字串。

示例

如果我們向 Node.js querystring.stringify() 方法指定一個 URL 物件,它將從給定物件返回一個序列化的 URL 查詢字串。

在下面的示例中,我們將一個帶有屬性的物件傳遞給 Node.js querystring.stringify() 方法。

const { url } = require('node:inspector');
const querystring = require('node:querystring');

var QueryString = {
   User: 'john',
   role: 'softwareeng',
   tech: 'HTML',
   permission: 'false'
}

var result = querystring.stringify(QueryString);
console.log(result);

輸出

以下是上述程式的輸出:

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:inspector'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:79)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 要檢視實際結果,請在本地執行上述程式碼。

執行上述程式後,querystring.stringify() 將從給定物件的自身屬性返回一個 URL 字串。

User=john&role=softwareeng&tech=HTML&permission=false

示例

如果我們將任何值傳遞給 Node.js querystring.stringify() 方法的 sepeq 引數,它將使用相同的定界符從物件返回 URL 查詢字串。

在下面的示例中,我們嘗試向 Node.js querystring.stringify() 方法的 sep 引數提供 &&,向 eq 引數提供 −。

const { url } = require('node:inspector');
const querystring = require('node:querystring');

var QueryString = {
   User: 'john',
   role: 'softwareeng',
   tech: 'HTML',
   permission: 'false'
}

var result = querystring.stringify(QueryString, "&&", "−");
console.log(result);

輸出

以下是上述程式的輸出:

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:inspector'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:79)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 要檢視實際結果,請在本地執行上述程式碼。

執行上述程式後,querystring.stringify() 將返回一個 URL 字串,其中包含相同的定界符。

User−john&&role−softwareeng&&tech−HTML&&permission−false

示例

即使我們將有限整數型別的值傳遞給 obj 屬性,Node.js querystring.stringify() 方法也會序列化返回的 URL 查詢字串。

在下面的程式中,我們嘗試在 obj 中傳遞一個整數型別的值。

const { url } = require('node:inspector');
const querystring = require('node:querystring');

var QueryString = {
   4355: 4565,
   role: 'softwareeng',
   tech: 'HTML',
   permission: 'false'
}

var result = querystring.stringify(QueryString, "&&&", "===");
console.log(result);

輸出

以下是上述程式的輸出:

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:inspector'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:79)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 要檢視實際結果,請在本地執行上述程式碼。

如果執行上述程式,則輸出如下所示。

4355===4565&&&role===softwareeng&&&tech===HTML&&&permission===false
nodejs_querystring_module.htm
廣告

© . All rights reserved.