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
AlloVince 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 。从来没用过其他的了~
|