nodejs queryString模块

来源:互联网 发布:锌镁威力素胶囊 知乎 编辑:程序博客网 时间:2024/05/17 08:23

queryString字面上的意思是查询字符串,一般是对http请求所带的数据进行解析。queryString模块提供了四个方法:

1.queryString.parse(str,separator,eq,options)

该方法是将一个字符串反序列化为一个对象。
参数说明:
str:指需要反序列化的字符串
separator(可选):指用于分割str这个字符串放入字符或者字符串,默认值为’&’
eq(可选):指用于划分键和值的字符或者字符串,默认值为‘=’
options(可选):里面可设置maxKeys和decodeURIComponent这两个属性:
maxKeys:
传入一个number类型,指定解析键值对的最大值,默认值为1000,如果设置为0时,则取消解析的数量限制;
decodeURIComponent:
传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。在官方API的例子中,使用gbkDecodeURIComponent这个方法会报错,显示gbkDecodeURIComponent is no defined,这是因为在使用这个gbkDecodeURIComponent这个方法之前需要先进行定义。在API中也写了Assuming gbkDecodeURIComponent function already exists…这句话的意思是”假设这个gbkDecodeURIComponent方法已经存在”。
举例说明:

var querystring = require('querystring');console.log(querystring.parse('name = xiaohu&sex=man&sex=woman'));console.log(querystring.parse('name=xiaohu#sex=man#sex=woman','#',null,{maxKeys:2}));

输出结果:

{ 'name ': ' xiaohu', sex: [ 'man', 'woman' ] }{ name: 'xiaohu', sex: 'man' }

2. querystring.stringify(obj,separator,eq,options)

stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。

参数:obj指需要序列化的对象

   separator(可省)用于连接键值对的字符或字符串,默认值为”&”;

   eq(可省)用于连接键和值的字符或字符串,默认值为”=”;

   options(可省)传入一个对象,该对象可设置encodeURIComponent这个属性:

encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape()。

var querystring = require('querystring');console.log(querystring.stringify({name:'xiaohu',sex:['man','woman']}));console.log(querystring.stringify({name:'xiaohu',sex:['man','woman']},'*','$'));

输出结果:

name=xiaohu&sex=man&sex=womanname$xiaohu*sex$man*sex$woman

3.querystring.escape(str)

escape可以使传入的字符串进行编码

var querystring = require('querystring');console.log(querystring.escape('name=小胡'));//输出name%3D%E5%B0%8F%E8%83%A1

4.querystring.unscape(str)

unscape方法可将含有%的字符串进行编码

var querystring = require('querystring');console.log(querystring.unescape('name%3D%E5%B0%8F%E8%83%A1'));//输出name=小胡
原创粉丝点击