qs.parse()、qs.stringify()使用场景
今天进行接口调试时查看接口文档,看到请求参数为application/x-www-form-urlencoded,这个参数值为content-type的类型,存在于Request Headers中,和前端常用的application/json格式不一样,意思是让我们前端把参数改成如下格式:key=value&key=value
qs库就可以用来实现上述两种格式的转化,其中qs.parse()是将URL解析成对象的形式
const Qs = require('qs'); let url = 'key1=1&key2=2&key3=3'; Qs.parse(url);
结果如下:
是不是我们熟悉的js对象了,反之,qs.stringify()将对象 序列化成URL的形式,以&进行拼接
const Qs = require('qs'); let url = 'key1=1&key2=2&key3=3'; Qs.parse(url); // console.log(Qs.stringify(Qs.parse(url)));
如果值是数组,可以用图下方式输出自定义的格式:
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'
愿所有远方终将抵达
愿爱你的人一直都在