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 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
JQquery的一些使用心得分享
Aug 01 Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
jQuery增加自定义函数的方法
Jul 18 Javascript
jQuery无缝轮播图代码
Dec 22 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
详解JS模块导入导出
Dec 20 Javascript
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
如何使用pm2快速将项目部署到远程服务器
Mar 12 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
Sep 23 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 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对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
php判断表是否存在的方法
2015/06/18 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
浅谈React Event实现原理
2018/09/20 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
Python批量修改文本文件内容的方法
2016/04/29 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
乡镇干部先进事迹材料
2014/02/03 职场文书
社区党务公开实施方案
2014/03/18 职场文书
班委竞选演讲稿
2014/04/28 职场文书
最美家庭活动方案
2014/08/31 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
投诉书范文
2015/07/02 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
python如何获取网络数据
2021/04/11 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL