第29节 Node.js Query Strings

本节为你介绍Node.js Query Strings。

复制代码
稳定性: 3 - 稳定

该Node.js模块提供了一些处理query strings的工具,你可以通过以下方式访问它:

复制代码
const querystring = require('querystring');

Node.js Query Strings包含的方法如下:

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

该方法可以将一个对象序列化化为一个query string 。

可以选择重写默认的分隔符('&') 和分配符 ('=')。

Options对象可能包含encodeURIComponent属性 (默认:querystring.escape),如果需要,它可以用non-utf8编码字符串。

例子:

复制代码
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'

// Suppose gbkEncodeURIComponent function already exists,
// it can encode string with `gbk` encoding
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
  { encodeURIComponent: gbkEncodeURIComponent })
// returns
'w=%D6%D0%CE%C4&foo=bar'

querystring.parse(str[, sep][, eq][, options])

该方法可以将query string反序列化为对象。

你可以选择重写默认的分隔符('&') 和分配符 ('=')。

Options对象可能包含maxKeys属性(默认:1000),用来限制处理过的健值(keys)。设置为0的话,可以去掉键值的数量限制。

Options 对象可能包含decodeURIComponent属性(默认:querystring.unescape),如果需要,可以用来解码non-utf8编码的字符串。

例子:

复制代码
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }

// Suppose gbkDecodeURIComponent function already exists,
// it can decode `gbk` encoding string
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
  { decodeURIComponent: gbkDecodeURIComponent })
// returns
{ w: '中文', foo: 'bar' }

querystring.escape

escape函数供querystring.stringify使用,必要时,可以重写。

querystring.unescape

unescape函数供querystring.parse使用。必要时,可以重写。

首先会尝试用decodeURIComponent,如果失败,会回退,不会抛出格式不正确的URLs。

相关推荐
白日梦想家6813 小时前
第三篇:Node.js 性能优化实战:提升服务并发与稳定性
linux·编辑器·vim
万法若空4 小时前
Vim常用指令汇编
汇编·编辑器·vim
心.c4 小时前
Vue3+Node.js实现文件上传分片上传和断点续传【详细教程】
前端·javascript·vue.js·算法·node.js·哈希算法
roamingcode4 小时前
我是如何 Vibe Coding,将 AI CLI 工具从 Node.js 迁移到 Rust 并成功发布的
人工智能·rust·node.js·github·claude·github copilot
Hello World . .1 天前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
belldeep1 天前
nodejs v18.20 如何使用 express markdown-it 和 mermaid.min.js 10.9
nodejs·express·markdown·mermaid
-Try hard-1 天前
数据结构 | 双向链表、双向循环链表、栈
数据结构·链表·vim
Stream_Silver2 天前
【Node.js 安装报错解决方案:解决“A later version of Node.js is already installed”问题】
node.js
Anthony_2312 天前
基于 Vue3 + Node.js 的实时可视化监控系统实现
node.js
-Try hard-2 天前
数据结构|概念及单向有头链表
数据结构·算法·vim