Node 刚开始看,觉着很简单,昨天写了一小程序,发现 node 下面的 httpclient 可不是一般的多,而且开发都很活跃, github star 都很高。
老司机说一下他们之间的大体比较吧? fetch, request, superagent, axios 。
![]() | 1 jkeylu 2016-11-11 08:15:17 +08:00 via Android 以前用 needle ,自从用了 promise 后,就一直用 node-fetch 了。像 request 太庞大了,大多数功能都没机会用到 |
![]() | 2 cloud107202 2016-11-11 08:53:12 +08:00 fetch ,配合 Promise 和 async/await 使用。 browser 端千万不要用 request |
![]() | 3 meteor 2016-11-11 09:20:47 +08:00 就用过 request |
![]() | 4 JoshOY 2016-11-11 09:42:36 +08:00 |
![]() | 5 lloVince 2016-11-11 09:53:07 +08:00 - node-fetch: 略简陋,主要目的是为了同构和浏览器公用代码 - request: 历史悠久,功能全, promise 还需要引入 request-promise , API 是一点点叠加上去的,没有经过完整的设计 - superagent: 和 request 有同样问题, promise 、 log 这种基础功能都需要引入三方库 - axios: 优点是可以实现同构, API 设计好,非常适合对接 RESTFul 服务,缺点是用例和资料偏少 我们生产最终用的 request |
![]() | 6 mcfog 2016-11-11 09:57:51 +08:00 request 用惯了,顺便 promise 一直用的 bluebird 也用惯了 npm init -y npm i -S request bluebird cheerio 各种小脚本的默认起手式 顺便数据复杂的话再来个 lodash |
![]() | 7 metrue 2016-11-11 10:04:00 +08:00 via iPhone fetch |
![]() | 8 lylijincheng 2016-11-11 10:15:20 +08:00 isomorphic-fetch |
![]() | 9 xieren58 2016-11-11 10:48:34 +08:00 got |
![]() | 10 xieren58 2016-11-11 10:49:02 +08:00 |
11 razor1895 2016-11-11 11:18:41 +08:00 isomorphic-fetch +1 |
![]() | 14 smallpath 2016-11-11 11:43:41 +08:00 superagent 和 axios 都是同构的, axios 功能全一点,前端用 fetch ,后端 axios |
![]() | 15 hujianxin OP @smallpath superagent 与 axios 还是不同的,我试了一下,将 axios 换成 superagent 之后, response 内容不同,代码得该。看了一下发现还是更喜欢 axios 一点。 其实前后端都用 fetch 也可以,这样的话会更统一一点吧。 |
![]() | 17 jin5354 2016-11-11 12:39:10 +08:00 fetch 是标准, axios 语法糖多,我用 axios |
![]() | 18 leopku 2016-11-11 13:44:54 +08:00 axios +1 有机会试试 got |
![]() | 19 wobuhuicode 2016-11-11 14:12:17 +08:00 request ! request ! request ! 主要是旧代码用着懒得换了…… |
![]() | 20 smallpath 2016-11-11 14:12:53 +08:00 @hujianxin axios 功能比 superagent 多,例如截取器,不过 response 内容倒是 axios 不怎么规范,大家都是叫 body 就它一个叫 data 。 fetch 的话前端是用 fetch ,后端不是 fetch 而是 node-fetch ,并不是同构,需要打包两份 |
![]() | 21 magicdawn 2016-11-11 14:22:52 +08:00 从 superagent 切到了 request-promise, 因为这个 https://github.com/visionmedia/superagent/issues/1069 我建议 node 端都用 request, 一个很简单的 trick, 自动读取 http_proxy / https_proxy 环境变量...等等 |
![]() | 22 magicdawn 2016-11-11 14:25:38 +08:00 现在 GitHub 都有 superagent owner / superagent contributor blabla 了... |
![]() | 24 shyling 2016-11-12 18:54:36 +08:00 via iPhone request |
26 helloleo 2016-11-13 17:30:23 +08:00 |
![]() | 27 solee 2016-11-14 09:37:09 +08:00 koa-request 作者封装的 request 。从来没用过其他的了~ |