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 相关文章推荐
Riot.js 快速的JavaScript单元测试框架
Nov 09 Javascript
js变量以及其作用域详解
Jul 18 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
微信小程序页面滑动屏幕加载数据效果
Nov 16 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
解决vue 路由变化页面数据不刷新的问题
Mar 13 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
vue实现学生信息管理系统
May 30 Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 Javascript
vue项目实现分页效果
Mar 24 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
很好用的PHP数据库类
2009/05/27 PHP
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
小程序实现投票进度条
2019/11/20 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python数据可视化之画图
2019/01/15 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
python中图像通道分离与合并实例
2020/01/17 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
最新远光软件笔试题面试题内容
2013/11/08 面试题
三维科技面试题
2013/07/27 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
运动会解说词100字
2014/01/31 职场文书
八一慰问活动方案
2014/02/07 职场文书
听课评语大全
2014/04/30 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
结婚堵门保证书
2015/05/08 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
django中websocket的具体使用
2022/01/22 Python
python中filter,map,reduce的作用
2022/06/10 Python