node.js入门教程之querystring模块的使用方法


Posted in Javascript onFebruary 27, 2017

querystring模块

querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。

这4个方法分别是querystring.parsequerystring.stringify,querystring.escapequerystring.unescape

首先,使用querystring模块之前,需要require进来:

const querystring = require("querystring");

其次,就可以使用模块下的方法了:

一、querystring.parse(str,separator,eq,options)

parse这个方法是将一个字符串反序列化为一个对象。

参数:

 str指需要反序列化的字符串;

 separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";

 eq(可省)指用于划分键和值的字符或字符串,默认值为"=";

 options(可省)该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性:

1.maxKeys:传入一个number类型,指定解析键值对的最大值,默认值为1000,如果设置为0时,则取消解析的数量限制;

2.decodeURIComponent:传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。在官方API的例子中,使用gbkDecodeURIComponent这个方法会报错,显示gbkDecodeURIComponent is no defined,这是因为在使用这个gbkDecodeURIComponent这个方法之前需要先进行定义。在API中也写了Assuming gbkDecodeURIComponent function already exists...这句话的意思是”假设这个gbkDecodeURIComponent方法已经存在”。

例子1,querystring.parse

querystring.parse("name=whitemu&sex=man&sex=women");
/*
return:
{ name: 'whitemu', sex: [ 'man', 'women' ] }
*/
querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
/*
return:
{ name: 'whitemu', sex: 'man' }
*/

二、querystring.stringify(obj,separator,eq,options)

stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。

参数:

 obj指需要序列化的对象

 separator(可省)用于连接键值对的字符或字符串,默认值为"&";

 eq(可省)用于连接键和值的字符或字符串,默认值为"=";

 options(可省)传入一个对象,该对象可设置encodeURIComponent这个属性:

1.encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape()

例子2,querystring.stringify

querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] });
/*
return:
'name=whitemu&sex=man&sex=women'
*/
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$");
/*
return:
'name$whitemu*sex$man*sex$women'
*/

三、querystring.escape(str)

escape可使传入的字符串进行编码

例子3,querystring.escape

querystring.escape("name=慕白");
/*
return:
'name%3D%E6%85%95%E7%99%BD'
*/

四、querystring.unescape(str)

unescape方法可将含有%的字符串进行解码

例子4,querystring.unescape

querystring.unescape('name%3D%E6%85%95%E7%99%BD');
/*
return:
'name=慕白'
*/

总结

querystring这个模块相对的还是比较简单,仅有4个方法。

1、querystring.stringify序列化;

2、querystring.parse反序列化;

3、querystring.escape编码;

4、querystring.unescape解码;

好了,以上就是这篇文章的全部内容了,当然啦,鄙人对于该模块的研究还是不深,仅仅对该模块的API做了简单的翻译和加上自己的一些理解,若有错误希望能够指正,一起探讨。同时希望本文的内容对大家能有一定的帮助。

Javascript 相关文章推荐
jQuery DIV弹出效果实现代码
Jul 03 Javascript
javascript深入理解js闭包
Jul 03 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
Javascript 基础---Ajax入门必看
Jul 06 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
微信小程序文章详情页跳转案例详解
Jul 09 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
JavaScript中数组Array方法详解
Feb 27 #Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 #Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 #Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 #Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 #Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 #Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 #Javascript
You might like
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
pyspark 随机森林的实现
2020/04/24 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
银行类自荐信
2014/02/04 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
普通党员对照检查材料
2014/08/28 职场文书
付款证明格式范文
2015/06/19 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS