- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- zlib
Node.js v18.18.2 文档
- Node.js v18.18.2
- ► 目录
-
►
索引
- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- 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
<字符串>
querystring.escape()
方法以针对 URL 查询字符串的特定要求进行优化的方式对给定的str
执行 URL 百分比编码
。
querystring.escape()
方法由querystring.stringify()
使用,通常不应该直接使用。导出它主要是为了允许应用程序代码在必要时通过将querystring.escape
分配给替代函数来提供替换百分比编码实现。
querystring.parse(str[, sep[, eq[, options]]])
#
str
<string>要解析的 URL 查询字符串sep
<string>用于分隔查询字符串中的键和值对的子字符串。默认值:'&'
。eq
<字符串>。用于分隔查询字符串中的键和值的子字符串。默认值:'='
。options
<对象>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
<字符串> . 用于分隔查询字符串中的键和值的子字符串。默认值:'='
。options
encodeURIComponent
<Function>将 URL 不安全字符转换为查询字符串中的百分比编码时使用的函数。默认值:querystring.escape()
。
querystring.stringify()
方法通过迭代对象的“自己的属性”,从给定的obj
生成 URL 查询字符串。
它序列化在obj
中传递的以下类型的值:
<string> | <数字> | <bigint> | <布尔值> | <字符串[]> | <数字[]> | <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
<字符串>
querystring.unescape()
方法对给定的str
执行 URL 百分比编码字符的解码。
querystring.unescape()
方法由querystring.parse()
使用,通常不应该直接使用。导出它主要是为了允许应用程序代码在必要时通过将querystring.unescape
分配给替代函数来提供替代解码实现。
默认情况下,querystring.unescape()
方法将尝试使用 JavaScript 内置的decodeURIComponent()
方法进行解码。如果失败,将使用不会引发格式错误的 URL 的更安全的等效项。