- assert断言
- async_hooks异步钩子
- async_hooks/context异步上下文
- buffer缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process子进程
- cluster集群
- CLI命令行
- console控制台
- Corepack核心包
- crypto加密
- crypto/webcrypto网络加密
- debugger调试器
- deprecation弃用
- dgram数据报
- diagnostics_channel诊断通道
- dns域名服务器
- domain域
- Error错误
- events事件触发器
- fs文件系统
- global全局变量
- http超文本传输协议
- http2超文本传输协议2.0
- https安全超文本传输协议
- inspector检查器
- Intl国际化
- module模块
- module/cjsCommonJS模块
- module/esmECMAScript模块
- module/package包模块
- net网络
- os操作系统
- path路径
- perf_hooks性能钩子
- policy安全策略
- process进程
- punycode域名代码
- querystring查询字符串
- readline逐行读取
- repl交互式解释器
- report诊断报告
- stream流
- stream/web网络流
- string_decoder字符串解码器
- test测试
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v18.6.0 文档
- Node.js 18.6.0
- ► 目录
-
►
索引
- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- policy 安全策略
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 搜索
目录
querystring 查询字符串#
源代码: lib/querystring.js
node:querystring
模块提供了用于解析和格式化网址查询字符串的实用工具。
可以使用以下方式访问它:
const querystring = require('node:querystring');
querystring
API 被视为旧版的。
虽然它仍在维护,但是新的代码应该改为使用 <URLSearchParams> API。
querystring.decode()
#
querystring.decode()
函数是 querystring.parse()
的别名。
querystring.encode()
#
querystring.encode()
函数是 querystring.stringify()
的别名。
querystring.escape(str)
#
str
<string>
querystring.escape()
方法以针对网址查询字符串的特定要求优化的方式对给定的 str
执行网址百分比编码。
querystring.escape()
方法被 querystring.stringify()
使用,通常不会被直接使用。
导出它主要是为了允许应用程序代码在必要时通过将 querystring.escape
分配给替代函数来提供替换的百分比编码实现。
querystring.parse(str[, sep[, eq[, options]]])
#
str
<string> 要解析的网址查询字符串sep
<string> 用于在查询字符串中分隔键值对的子字符串。 默认值:'&'
。eq
<string>用于在查询字符串中分隔键和值的子字符串。 默认值:'='
。options
<Object>decodeURIComponent
<Function> 当对查询字符串中的百分比编码字符进行解码时使用的函数。 默认值:querystring.unescape()
。maxKeys
<number> 指定要解析的最大键数。 指定0
以删除键的计数限制。 默认值:1000
。
querystring.parse()
方法将网址查询字符串 (str
) 解析为键值对的集合。
例如,查询字符串 'foo=bar&abc=xyz&abc=123'
被解析为:
{
foo: 'bar',
abc: ['xyz', '123']
}
querystring.parse()
方法返回的对象通常不是从 JavaScript Object
继承的原型。
这意味着典型的 Object
方法,例如 obj.toString()
、obj.hasOwnProperty()
和其他方法未定义且无法工作。
默认情况下,查询字符串中的百分比编码字符将被假定为使用 UTF-8 编码。
如果使用替代的字符编码,则需要指定替代的 decodeURIComponent
选项:
// 假设 gbkDecodeURIComponent 函数已存在...
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent });
querystring.stringify(obj[, sep[, eq[, options]]])
#
obj
<Object> 要序列化为网址查询字符串的对象sep
<string> 用于在查询字符串中分隔键值对的子字符串。 默认值:'&'
。eq
<string>用于在查询字符串中分隔键和值的子字符串。 默认值:'='
。options
encodeURIComponent
<Function> 当将网址不安全的字符转换为查询字符串中的百分比编码时使用的函数。 默认值:querystring.escape()
。
querystring.stringify()
方法通过遍历对象的"自有属性"从给定的 obj
生成网址查询字符串。
它序列化了 obj
中传入的以下类型的值:<string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]>。数值必须是有限的。
任何其他输入值都将被强制为空字符串。
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// 返回 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// 返回 'foo:bar;baz:qux'
默认情况下,查询字符串中需要百分比编码的字符将被编码为 UTF-8。
如果需要替代的编码,则需要指定替代的 encodeURIComponent
选项:
// 假设 gbkEncodeURIComponent 函数已存在,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent });
querystring.unescape(str)
#
str
<string>
querystring.unescape()
方法在给定的 str
上执行网址百分比编码字符的解码。
querystring.unescape()
方法被 querystring.parse()
使用,通常不会被直接使用。
导出它主要是为了允许应用程序代码在必要时通过将 querystring.unescape
分配给替代函数来提供替代的解码实现。
默认情况下,querystring.unescape()
方法将尝试使用 JavaScript 内置的 decodeURIComponent()
方法进行解码。
如果失败,则将使用更安全的不会因格式错误的网址而抛出错误的同类方法。