I am trying to make a request against a php server that is constructing the url like this:
website.com/?q=help&q=moreHelp&q=evenMoreHelp
How do I use superagent to pass the same query with multiple values?
I've tried this:
req.get('website.com').query({q:'help',q:'moreHelp',q:'evenMoreHelp'}).end(...)
But I'm not sure it is actually sending all three 'q' values. What am I supposed to do to make sure they all get sent?
Is it OK to use query parameters in a PUT request? Absolutely. Query parameters are just another piece of the resource identifier.
A query parameter is a set of parameters appended to the end of a URL. They're URL extensions that let you define customized content or actions based on the information you're passing. A query string, part of a URL, contains data provided to a web-based application and/or a back-end repository.
You definitely will not see all three q
values when you pass the query in the manner you are trying, because you are making a JavaScript object there and yes, there will only be one q
value:
$ node
> {q:'help',q:'moreHelp',q:'evenMoreHelp'}
{ q: 'evenMoreHelp' }
Superagent allows query strings, as in this example straight from the docs:
request
.get('/querystring')
.query('search=Manny&range=1..5')
.end(function(res){
});
So if you pass the string 'q=help&q=moreHelp&q=evenMoreHelp'
you should be okay. Something like:
req.get('website.com').query('q=help&q=moreHelp&q=evenMoreHelp').end(...)
If this is too ugly, you can try (WARNING: I have not tried this):
req.get('website.com')
.query({ q: 'help' })
.query({ q: 'moreHelp' })
.query({ q: 'evenMoreHelp' })
.end(...);
As of Superagent 1.5.0 you can pass an array as a property of the query object and it will generate multiple query parameters of the same name:
req.get('website.com').query({foo: ['bar1', 'bar2']})
results in website.com?foo=bar1&foo=bar2
As a side note, if you want Rails parameter[]=value
syntax then the following works for me:
req.get('website.com').query({'foo[]': ['bar1', 'bar2']})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With