三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 253|回复: 0
打印 上一主题 下一主题

Node.js Query Strings

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-8-8 07:51:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个模块提供了一些处理 query strings 的工具,包括以下方法:
querystring.stringify(obj[, sep][, eq][, options])

将一个对象序列化化为一个 query string 。
可以选择重写默认的分隔符('&') 和分配符 ('=')。
Options 对象可能包含 encodeURIComponent 属性 (默认:querystring.escape),如果需要,它可以用 non-utf8 编码字符串。
例子:
  1. querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
  2. // returns
  3. 'foo=bar&baz=qux&baz=quux&corge='

  4. querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
  5. // returns
  6. 'foo:bar;baz:qux'

  7. // Suppose gbkEncodeURIComponent function already exists,
  8. // it can encode string with `gbk` encoding
  9. querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
  10.   { encodeURIComponent: gbkEncodeURIComponent })
  11. // returns
  12. '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 编码的字符串。
例子:
  1. querystring.parse('foo=bar&baz=qux&baz=quux&corge')
  2. // returns
  3. { foo: 'bar', baz: ['qux', 'quux'], corge: '' }

  4. // Suppose gbkDecodeURIComponent function already exists,
  5. // it can decode `gbk` encoding string
  6. querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
  7.   { decodeURIComponent: gbkDecodeURIComponent })
  8. // returns
  9. { w: '中文', foo: 'bar' }
复制代码
querystring.escape
escape 函数供 querystring.stringify 使用,必要时,可以重写。
querystring.unescape
unescape函数供 querystring.parse 使用。必要时,可以重写。
首先会尝试用 decodeURIComponent,如果失败,会回退,不会抛出格式不正确的 URLs。

回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2025-6-27 00:09 , Processed in 0.029105 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表