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 EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
jQuery源码分析之jQuery中的循环技巧详解
Sep 06 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
vue-cli构建项目使用 less的方法
Oct 04 Javascript
vue-router懒加载速度缓慢问题及解决方法
Nov 25 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
jQuery实现评论模块
Aug 19 jQuery
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 date函数参数详解
2006/11/27 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php curl_init函数用法
2014/01/31 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python matplotlib库的基本使用
2020/09/23 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
春季运动会开幕词
2015/01/28 职场文书
求职自荐信怎么写
2015/03/04 职场文书
教师工作能力自我评价
2015/03/04 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript
volatile保证可见性及重排序方法
2022/08/05 Java/Android
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技