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 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
JS模拟按钮点击功能的方法
Dec 22 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
Jun 11 Javascript
原来JS还可以这样拆箱转换详解
Feb 01 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
jenkins自动构建发布vue项目的方法步骤
Jan 04 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
做一个有下拉功能的留言版
2006/10/09 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
PHP微信API接口类
2016/08/22 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
python模拟Django框架实例
2016/05/17 Python
python与php实现分割文件代码
2017/03/06 Python
Python中装饰器高级用法详解
2017/12/25 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
python解释器spython使用及原理解析
2019/08/24 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
UNIX文件系统分类
2014/11/11 面试题
党校培训自我鉴定
2014/02/01 职场文书
学生会部长竞聘书
2014/03/31 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2015年度保密工作总结
2015/04/24 职场文书
工作感言一句话
2015/08/01 职场文书
vue中div禁止点击事件的实现
2022/04/02 Vue.js
Mysql中mvcc各场景理解应用
2022/08/05 MySQL