querystring模块详解
querystring模块用于处理query字符串,包含以下方法:
- parse、decode
- escape
- unescape
- encode、stringify
parse、decode方法
parse与decode方法是一样的,都用于将query字符串解析成对象,例如:
> var qs = require("querystring")
> qs.parse("a=1&b=2&c=3")
{ a: "1", b: "2", c: "3"}
注意:stringify返回的是字符串类型,而parse非字符串类型;传入的url不能包含?。
parse方法还有三个可选参数,分别是分隔符(默认为&),赋值符(默认为=),以及配置对象,配置对象又有两个可选参数,分别是````maxKeys(最多能解析多少个键值对)和decodeURIComponent(用于解码非utf-8编码字符串,默认为querystring.unescape```)。
例如:
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent })
// returns
{ w: '中文', foo: 'bar' }
stringify、encode方法
这两个方法的作用也是一样的,用于将对象转换成query字符串。如果属性值不是string、boolean和number中的一种,它就不能序列化,返回内容中的关键字对应的值为空。
例如:
> var obj = {a:1, b:2, func: function(){console.log("func")}}
undefined
> qs.stringify(obj)
'a=1&b=2&func='
> qs.encode(obj)
'a=1&b=2&func='
同样的,stringify或者encode方法也有三个可选参数,分别是分隔符(默认为&),赋值符(默认为=),以及配置对象,配置对象可包含属性decodeURIComponent(用于解码非utf-8编码字符串,默认为querystring.escape)。
例如:
// 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'
encode
参数编码
> var qs = require("querystring")
> qs.escape("中国")
'%E4%B8%AD%E5%9B%BD'
unescape
参数解码
> var param = '%E4%B8%AD%E5%9B%BD'
undefined
> qs.unescape('%E4%B8%AD%E5%9B%BD')
'中国'
querystring模块详解的更多相关文章
- nodejs QueryString模块 详解
QueryString模块 "QueryString" 模块用于实现URL参数字符串与参数对象的互相转换 此类一共包括4个方法: querystring.stringify(obj ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- python time 模块详解
Python中time模块详解 发表于2011年5月5日 12:58 a.m. 位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...
- python time模块详解
python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明 一.简介 ...
- 小白的Python之路 day5 time,datatime模块详解
一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...
- 小白的Python之路 day5 random模块和string模块详解
random模块详解 一.概述 首先我们看到这个单词是随机的意思,他在python中的主要用于一些随机数,或者需要写一些随机数的代码,下面我们就来整理他的一些用法 二.常用方法 1. random.r ...
随机推荐
- 使用vue+webpack打包时,去掉资源前缀
在build文件夹下找到webpack.prod.conf.js文件,搜索 filename: utils.assetsPath('css/[name].[contenthash].css'), 将[ ...
- Vue项目打包报错Failed to load resource: net::ERR_FILE_NOT_FOUND
webpack.prod.conf.js 中output添加参数publicPath:'./' 修改webpack.base.conf.js中: publicPath: process.env.NOD ...
- 转:Jquery的parent和parents(找到某一特定的祖先元素)
Jquery的parent和parents(找到某一特定的祖先元素) 关于Jquery的parent和parents parent是指取得一个包含着所有匹配元素的唯一父元素的元素集合.parents则 ...
- JS中Date.parse()和Date.UTC()返回值不一致
Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包 ...
- CentOS 6.x 安装vnc
https://www.cnblogs.com/pipci/p/7833581.html 1.安装vnc server [root@pxe ~]# yum install tigervnc-ser ...
- Strut2开发经验总结
1.如何在html静态页面中使用struts tomcat目录/conf/web.xml 文件中,找到 <servlet-mapping> <servlet-name>jsp& ...
- 【node】node的核心模块---http模块,http的服务器和客户端
nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...
- Android实现不同Active页面间的跳转
Intent intent = new Intent(); intent.setClass(ErrorPageActive.this, LoginActive.class); startActivit ...
- Android微信支付—注意事项
坑点一:PayReq的参数 sign的生成 PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 ...
- Sass带来的变革_sass, scss 教程_w3cplus - Google Chrome
Sass带来的变革 作者:大漠 日期:2014-11-17 点击:5291 sass scss 接触Sass差不多有一个年头了,在这一年来的时间中,也花了不少心思在Sass的学习上.同时也让自己喜欢上 ...