📜  Node.js querystring.escape() 方法(1)

📅  最后修改于: 2023-12-03 15:17:55.410000             🧑  作者: Mango

Node.js querystring.escape()方法

在 Node.js 中,querystring 模块提供了一些用于解析和编码查询字符串的函数。其中,querystring.escape() 方法用于对给定的字符串进行 URI 编码,以便于在 URL 中传递参数时进行传递。

应用场景

当我们需要在 URL 中传递参数时,需要对参数进行编码以避免出现无法识别的字符。

例如,我们要传递参数 name=小明&age=18

const params = { name: '小明', age: 18 };
const queryString = Object.keys(params).map(key => `${key}=${params[key]}`).join('&');

console.log(`https://example.com?${queryString}`);

输出的 URL 为:https://example.com?name=小明&age=18。但是,如果直接在 URL 中传递中文或特殊字符,可能会导致解析错误或不能正常显示。

这时,我们就需要使用 querystring.escape() 方法对参数进行编码:

const params = { name: '小明', age: 18 };
const queryString = Object.keys(params).map(key => `${key}=${querystring.escape(params[key])}`).join('&');

console.log(`https://example.com?${queryString}`);

输出的 URL 为:https://example.com?name=%E5%B0%8F%E6%98%8E&age=18。可以看到,参数中的中文已经被编码成了 %E5%B0%8F%E6%98%8E

方法签名
querystring.escape(str)

参数说明:

  • str:要进行 URI 编码的字符串。

返回值:返回进行 URI 编码后的字符串。

示例代码
const querystring = require('querystring');

const str = 'hello world!';
const escapedStr = querystring.escape(str);

console.log(`原字符串:${str}`);
console.log(`编码后字符串:${escapedStr}`);

输出结果为:

原字符串:hello world!
编码后字符串:hello%20world%21
注意事项
  • querystring.escape() 方法仅会对一些特殊字符进行 URI 编码,如 ,&,=,,/,:,#` 等。其他字符不需要进行编码。
  • 对应的解码方法是 querystring.unescape() 方法。