node.js入门教程之querystring模块的使用方法
querystring模块
querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。
这4个方法分别是querystring.parse
和querystring.stringify
,querystring.escape
和querystring.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做了简单的翻译和加上自己的一些理解,若有错误希望能够指正,一起探讨。同时希望本文的内容对大家能有一定的帮助。
下一篇: 微信扫描二维码登录网站代码示例
推荐阅读
-
node.js入门教程之querystring模块的使用方法
-
Node.js之readline模块的使用详解
-
node.JS路径解析之PATH模块使用方法详解
-
Node.JS获取GET,POST数据之queryString模块使用方法详解
-
node.js中process进程的概念和child_process子进程模块的使用方法示例
-
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
-
node.JS事件机制与events事件模块的使用方法详解
-
Node.js设置定时任务之node-schedule模块的使用详解
-
Python之shutil模块的使用方法
-
Python之logging模块的使用方法