由于业务需求需要用到iframe来发送get请求,用来导出数据列表数据,客户会首先筛选出不同条件下的数据,然后在其中勾选多项进行导出,因此参数中会有id数组以及query查询条件数组,但是我们后端需要get请求中的数组要求是这样的:

id[]=1&id[]=2
query[]={a: 1}&query[]={b: 2}

在不知道qs之前,我是使用了Array.reduce方法来构造url字符串:

id = ids.reduce((acc, curr) => {
  return acc + `&ids[]=${curr}`
}, '')

但是自从发现qs能直接处理这玩意之后,才发现之前做的简直就是无用功:

url = qs.stringify(data);  // 即可得标准的get请求url

不过此时qs默认处理的数组是这样的:

id[1]=1&id[2]=2

这不是我想要的,qs肯定也能处理:

qs.stringify(data, {arrayFormat: 'brackets'});  // id[]=1&id[]=2

qs

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

在阿里云轻应用服务上安装mongodb 上一篇
npm包发布以及删除流程 下一篇