我正在尝试对正在构建url的php服务器发出请求:
website.com/?q=help&q=moreHelp&q=evenMoreHelp
如何使用superagent传递具有多个值的相同查询?
我试过这个:
。req.get(' website.com&#39)的查询({Q:'帮助',Q:' moreHelp',Q:' evenMoreHelp'})端(...)
但我不确定它实际上是在发送所有三个' q'值。我应该做些什么来确保他们都被送去?
答案 0 :(得分:5)
当你以你正在尝试的方式传递查询时,你肯定不会看到所有三个q
值,因为你在那里制作一个JavaScript对象,是的,只有一个q
值:
$ node
> {q:'help',q:'moreHelp',q:'evenMoreHelp'}
{ q: 'evenMoreHelp' }
Superagent允许查询字符串,如本例straight from the docs:
request
.get('/querystring')
.query('search=Manny&range=1..5')
.end(function(res){
});
所以如果你传递字符串'q=help&q=moreHelp&q=evenMoreHelp'
,你应该没问题。类似的东西:
req.get('website.com').query('q=help&q=moreHelp&q=evenMoreHelp').end(...)
如果这太难看了,你可以尝试(警告:我没试过这个):
req.get('website.com')
.query({ q: 'help' })
.query({ q: 'moreHelp' })
.query({ q: 'evenMoreHelp' })
.end(...);
答案 1 :(得分:0)
从Superagent 1.5.0开始,您可以将数组作为查询对象的属性传递,它将生成多个相同名称的查询参数:
req.get('website.com').query({foo: ['bar1', 'bar2']})
结果为website.com?foo=bar1&foo=bar2
作为旁注,如果您需要Rails parameter[]=value
语法,那么以下内容适用于我:
req.get('website.com').query({'foo[]': ['bar1', 'bar2']})
答案 2 :(得分:-1)
我可以确认将参数作为数组传递到查询中可以很好地工作,就像这样:
query: {
productId,
orderStatuses: ['FOO', 'BAR', 'OTHER'],
},