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加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
js中indexof的用法详细解析
Dec 24 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
JS获取和修改元素样式的实例代码
Aug 06 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
Nov 10 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
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读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
分享php多功能图片处理类
2016/05/15 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
详解js中==与===的区别
2017/01/08 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python求出0~100以内的所有素数
2018/01/23 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
如何通过python计算圆周率PI
2020/11/11 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
机电专业大学生求职信
2013/10/04 职场文书
大学自荐信
2013/12/12 职场文书
护理中职生求职信范文
2014/02/24 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
《春笋》教学反思
2014/04/15 职场文书
公司应聘求职信
2014/06/21 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
节能环保演讲稿
2014/08/28 职场文书
群众路线个人整改方案
2014/10/25 职场文书
学习与创新自我评价
2015/03/09 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
联村联户简报
2015/07/21 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书