qs文档翻译
安装:
npm install qs --save-dev
基本用法:
1 let qs = require('qs'); 2 let assert = require('assert'); 3 4 5 //qs.parse('a=c')将字符串等式转换为对象 6 let obj = qs.parse('a=c'); 7 console.log(obj)//{a:'c'} 8 9 //qs.stringify(obj)将对象转化为字符串等式 10 let str = qs.stringify(obj); 11 console.log(str)//a=c
解析对象:
qs.parse(string, [options]);
qs可以通过使用[]在查询字符串中创建嵌套的对象
如:
qs.parse('foo[bar]=baz'
等于:
foo: { bar: 'baz' }
解析URL编码:
qs.parse('a%5Bb%5D=c')
等于:
a: { b: 'c' }
对象嵌套:
1 qs.parse('foo[bar][baz]=foobarbaz'
结果:
foo: { bar: { baz: 'foobarbaz' } }
默认情况下,qs可以解析1000个参数,可以通过parameterLimit选项进行设置:
1 var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); 2 // { a: 'b' }
ignoreQueryPrefix:选项,忽略查询字符:
1 var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true });
结果:
{ a: 'b', c: 'd' }
delimiter分隔符选项:去掉分号:
qs.parse('a=b;c=d', { delimiter: ';' }) //{ a: 'b', c: 'd' }
分隔符可以是正则表达式:
qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); //{ a: 'b', c: 'd', e: 'f' }
allowDots
选项:将点.变成对象;
1 qs.parse('a.b=c', { allowDots: true }); 2 //{ a: { b: 'c' } }
charset :如果您必须处理旧版浏览器或服务,还支持将百分比编码的八位字节解码为iso-8859-1
1 qs.parse('a=%A7', { charset: 'iso-8859-1' } 2 //{ a: '§' }
解析数组:
qs.parse('a[]=b&a[]=c'); //{ a: ['b', 'c'] }
在解析数组的时候,可以指定index:
1 qs.parse('a[1]=c&a[0]=b') 2 //{ a: ['b', 'c'] }
如果是空值,也将保留:
1 qs.parse('a[]=&a[]=b') 2 //{ a: ['', 'b'] }
1 a[0]=b&a[1]=&a[2]=c 2 // { a: ['b', '', 'c'] }
如果索引超过20,索引将会被看作是key:
1 qs.parse('a[100]=b') 2 //{ a: { '100': 'b' } }
转化为字符串:
qs.stringify(object, [options]);
qs.stringify({ a: 'b' }) //'a=b' qs.stringify({ a: { b: 'c' } }) //a%5Bb%5D=c
qs.stringify({ a: { b: 'c' } }, { encode: false }) //a[b]=c
qs.stringify({ a: ['b', 'c', 'd'] }) // 'a[0]=b&a[1]=c&a[2]=d'
qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); // 'a=b&a=c&a=d'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) // 'a[0]=b&a[1]=c' qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) // 'a[]=b&a[]=c' qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) // 'a=b&a=c'
qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); // 'a[b][c]=d&a[b][e]=f'
qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); // 'a.b.c=d&a.b.e=f'
qs.stringify({ a: '' }) //a=
qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }) //'?a=b&c=d'
1 qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }) 2 'a=b;c=d'
一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;