Axios和SuperAgent库有什么区别?

12

我正在学习 JavaScript,发现在多个大型项目中,SuperAgent 被用于 HTTP 请求。为了学习,我使用的是 Axios,但我想知道 SuperAgent 与 Axios 有什么不同?


参见:https://dev59.com/r1kS5IYBdhLWcg3wUVMG - Brad
谢谢@brad,但它只回答了特定的上下文,似乎没有涵盖所有方面。 - Ishan Patel
那里有一个回答讨论了 Promise API 和回调函数。你的问题非常笼统... 你有任何具体的问题吗? - Brad
谢谢。@Brad 我只是想简要了解这两个库,以便我知道应该使用哪一个。 - Ishan Patel
尝试两种方法,并使用最适合您用途的方法。两者都使用相同的基础Node.js库。 - Brad
2个回答

26

axios比superagent有更多的星星,在这里检查

如果你正在做前端开发,axios可能更受欢迎,例如vue使用axios,我正在做后端开发,两者都可以。

但就像Axios vs Superagent中的一个答案所说:“我会基于其他因素做出决定,比如你更喜欢哪个API和库的大小”,我尝试了两种方式,最终选择了supergent,因为superagent具有内置重试功能。

axios不提供重试功能,https://github.com/axios/axios/issues/164。我真的不喜欢为了重试而引入另一个模块,更不用说现在已经有两个不同的模块了,axios-retryretry-axios

此外,通过我的有限测试,这个问题https://github.com/axios/axios/issues/553还没有完全解决。


2
在我撰写此文时,axios-retry和retry-axios均不能与四个月前发布的axios 0.19.0兼容。
  1. https://github.com/softonic/axios-retry/issues/94
  2. https://github.com/JustinBeckwith/retry-axios/issues/62
- Anti Veeranna
在2023年,另一个名为alova的库问世,该库专门旨在与axios竞争,并且alova还提供了retry功能。 - Qiulang

14

superagentaxios是HTTP客户端库。它们都非常成熟,选择其中一个最终归结于个人偏好。下面是使用每个库创建带有JSON正文的POST请求的示例:

// superagent
await request
  .post('/to/my/api') // URI
  .set('Authorization', authorizationKey) // Header
  .send({ foo: 'bar' })  // Body
  // then creates a promise that returns the response
  .then(res => res.body) 

/* axios */
// axios exclusively returns promises
// URI, body, request options are provided in one call
await request.post('/to/my/api', { 
  foo: 'bar'
}, {
  headers: {
    Authorization: authorizationKey
  }
}) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接