📜  Node.js querystring.stringify() 方法

📅  最后修改于: 2022-05-13 01:56:54.174000             🧑  作者: Mango

Node.js querystring.stringify() 方法

querystring.stringify() 方法用于从包含键值对的给定对象生成 URL 查询字符串。该方法遍历对象自己的属性以生成查询字符串。

它可以序列化单个或一组字符串、数字和布尔值。任何其他类型的值都被强制为空字符串。

在序列化过程中,UTF-8 编码格式用于对任何需要百分比编码的字符进行编码。要使用替代字符编码进行编码,必须指定encodeURIComponent选项。

句法:

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

参数:该函数接受上面提到的四个参数,如下所述:

  • obj:它是一个必须序列化为 URL 查询字符串的对象。
  • sep:它是一个字符串,它指定用于分隔查询字符串中的键值对的子字符串。默认值为“&”。
  • eq:它是一个String,它指定用于分隔查询字符串中的键和值的子字符串。默认值为“=”。
  • options:它是一个对象,可用于修改方法的行为。它具有以下参数:
    • encodeURIComponent:它是一个函数,用于将 URL 不安全字符转换为查询字符串中的百分比编码。默认值为querystring.escape()

返回值:它返回一个字符串,其中包含从给定对象生成的 URL 查询。

下面的程序说明了 Node.js 中的querystring.stringify()方法:

示例 1:

// Import the querystring module
const querystring = require("querystring");
  
// Specify the URL object
// to be serialized
let urlObject = {
    user: "sam",
    access: true,
    role: ["admin", "editor", "manager"],
};
  
// Use the stringify() method on the object
let parsedQuery = querystring.stringify(urlObject);
  
console.log("Parsed Query:", parsedQuery);

输出:

Parsed Query: user=sam&access=true&role=admin&role=editor&role=manager

示例 2:

// Import the querystring module
const querystring = require("querystring");
  
// Specify the URL object
// to be serialized
let urlObject = {
    user: "max",
    access: false,
    role: ["editor", "manager"],
};
  
// Use the stringify() method on the object
// with sep as `, ` and eq as `:`
let parsedQuery = querystring.stringify(urlObject, ", ", ":");
  
console.log("Parsed Query 1:", parsedQuery);
  
// Use the stringify() method on the object
// with sep as `&&&` and eq as `==`
parsedQuery = querystring.stringify(urlObject, "&&&", "==");
  
console.log("\nParsed Query 2:", parsedQuery);

输出:

Parsed Query 1: user:max, access:false, role:editor, role:manager

Parsed Query 2: user==max&&&access==false&&&role==editor&&&role==manager

参考: https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options