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打造的百分比动态色彩条插件
Sep 19 Javascript
固定表格行列(expression)在IE下适用
Jul 25 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
基于jquery实现轮播特效
Apr 22 Javascript
AngularJS教程之简单应用程序示例
Aug 16 Javascript
vue时间格式化实例代码
Jun 13 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
微信小程序国际化探索实现(附源码地址)
May 20 Javascript
为react组件库添加typescript类型提示的方法
Jun 15 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 数据库字段复用的基本原理与示例
2011/07/22 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
Node.JS如何实现JWT原理
2020/09/18 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
django从后台返回html代码的实例
2020/03/11 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
python 批量将中文名转换为拼音
2021/02/07 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
学生会竞选自荐信
2013/10/12 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
创业计划书之熟食店
2019/10/16 职场文书
Java完整实现记事本代码
2022/06/16 Java/Android