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 bind(click)传参让列表中每行绑定一个事件
Aug 06 Javascript
javascript实现根据身份证号读取相关信息
Dec 17 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
Aug 13 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
使用JS中的exec()方法构造正则表达式验证
Aug 01 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
Aug 02 Javascript
使用Promise链式调用解决多个异步回调的问题
Jan 15 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
Jul 13 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
微信小程序自定义扫码功能界面的实现代码
Jul 02 Javascript
node.js如何操作MySQL数据库
Oct 29 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 strncasecmp字符串比较的小技巧
2011/01/04 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
第五章 php数组操作
2011/12/30 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
js使用心得分享
2015/01/13 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
Python转码问题的解决方法
2008/10/07 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
计算机专业个人求职信范例
2013/09/23 职场文书
学术会议主持词
2014/03/17 职场文书
圆明园观后感
2015/06/03 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
git stash(储藏)的用法总结
2022/06/25 Servers