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 相关文章推荐
Javascript 写的简单进度条控件
Jan 22 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
JavaScript表单验证实现代码
May 22 Javascript
浅谈在koa2中实现页面渲染的全局数据
Oct 09 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
webpack结合express实现自动刷新的方法
May 07 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
js日期时间补零的小例子
2013/03/05 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
jQuery实现带进度条的轮播图
2020/09/13 jQuery
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
浅谈Python单向链表的实现
2015/12/24 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Python二元算术运算常用方法解析
2020/09/15 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
自荐信的两点禁忌
2013/10/30 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书