如何使用相同的查询参数发送带superagent的请求

我试图做一个PHP服务器,这是构build这样的url的请求:

website.com/?q=help&q=moreHelp&q=evenMoreHelp

如何使用superagent将多个值传递给相同的查询?

我试过这个:

req.get( 'website.com')查询({Q: '救命',问: 'moreHelp',问: 'evenMoreHelp'})。结束(…)

但我不确定它实际上是发送所有三个'Q'值。 我该怎么做,以确保他们都被发送?

当您以您尝试的方式传递查询时,您肯定不会看到所有三个q值,因为您正在创build一个JavaScript对象,而且只会有一个q值:

 $ node > {q:'help',q:'moreHelp',q:'evenMoreHelp'} { q: 'evenMoreHelp' } 

Superagent允许查询string,如本例中直接从文档 :

 request .get('/querystring') .query('search=Manny&range=1..5') .end(function(res){ }); 

所以如果你传递string'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(...); 

从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']})