superagent icon indicating copy to clipboard operation
superagent copied to clipboard

The agent() set default behavior is nonsensical

Open Louis-Tian opened this issue 2 years ago • 0 comments

No mean to offend, but I find that agent's default setting behavior to be nonsensical.

I want the agent to manage the cookie for me. But I still need to send query with different query parameters in the requests. Thinking this is a pretty common and reasonable use case. After all that's what happens if you make http request from a browser.

If I am not mistaken, the current api virtually prohibits you from doing that. For example

const agent = superagent.agent()
await agent.get('/xyz').query({ id: 1 })
await agent.get('/xyz')                          // with ?id=1 
await agent.get('/xyz').query({id: undefined })  // without ?id=1
await agent.get('/xyz')                          // with ?id=1 again

The current api means the first query parameter you send automatically becomes the default for all of the subsequent requests and without any way of removing that default.

Louis-Tian avatar Sep 28 '23 00:09 Louis-Tian