nodejs queryString模块

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=woman
name$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=小胡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值