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'

 

posted @ 2020-08-06 10:02  Do丶  阅读(458)  评论(0编辑  收藏  举报