gpt4 book ai didi

javascript - 从带有 ids 数组的 url 中删除括号 (Request.js)

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:00 24 4
gpt4 key购买 nike

我有一个使用 Nodejs Express 的应用程序,它发出请求,但是当我传递一个数组时,我是:

示例:/foo?id=1&id=3&id=5

如何删除“[]”?

var requestQueryParams = {id: [1,3,5]}

var options = {
url: 'www.test.com',
headers: {'content-type': 'application/json', 'accept': 'application/json'},
qs: requestQueryParams || {}
};

request.get(options), function(){...}

结果:www.test.com?id[0]=1&id[1]=3&id[2]=5

Request.js = https://www.npmjs.org/package/request

Qs.js = https://www.npmjs.org/package/qs

Qs.stringify({ a: ['b', 'c', 'd'] });
//'a[0]=b&a[1]=c&a[2]=d'

最佳答案

一段时间以来,出现了更好的解决方案。 request 默认使用 qs 对传入的 qs 对象进行字符串化,该对象还接受格式化选项。其中一个选项是 arrayFormat,它接受以下值:

  • 索引:默认行为。生成一个包含索引的字符串:id[0]=foo&id[1]=bar&id[2]=baz。如果您想确保正确的顺序,这很有用。
  • brackets:生成仅附加括号的字符串:id[]=foo&id[]=bar&id[]=baz
  • repeat:生成不带任何括号的字符串:id=foo&id=bar&id=baz。不支持数组的旧服务可能会接受此设置,但只会使用最后一个值。

带有此选项的对象如下所示:

const request = require('request');
const options = {
...
qs: {
id: [ 'foo', 'bar', 'baz' ],
},
qsStringifyOptions: { arrayFormat: 'repeat' },
};
request(options);

另请参阅https://github.com/request/request#requestoptions-callback ,其中也提到了该选项。

关于javascript - 从带有 ids 数组的 url 中删除括号 (Request.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com