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 相关文章推荐
checkbox 复选框不能为空
Jul 11 Javascript
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
vue+axios+promise实际开发用法详解
Oct 15 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
php中的一个中文字符串截取函数
2007/02/14 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
从0开始学Vue
2016/10/27 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
产品工艺师的岗位职责
2013/11/15 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
后勤主管岗位职责
2014/03/01 职场文书
运动会班级前导词
2015/07/20 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript