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 相关文章推荐
js 巧妙去除数组中的重复项
Jan 25 Javascript
js 禁用只读文本框获得焦点时的退格键
Apr 25 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
Apr 15 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
JS实现为排序好的字符串找出重复行的方法
Mar 02 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
彻底解决 webpack 打包文件体积过大问题
Jul 07 Javascript
详解vue + vuex + directives实现权限按钮的思路
Oct 24 Javascript
vue动态绑定class选中当前列表变色的方法示例
Dec 19 Javascript
js中async函数结合promise的小案例浅析
Apr 14 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
15种PHP Encoder的比较
2007/04/17 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
类如何去实现接口
2013/12/19 面试题
护士自我介绍信
2014/01/13 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
python使用torch随机初始化参数
2022/03/22 Python