node极致轻量化的http client推荐,同时支持浏览器browser和node

乐正涵意
2023-12-01

背景

笔者一直找一个轻量级的http客户端,需要同时支持浏览器环境和node环境,因为是作为内嵌模块,要求文件轻量级,功能要求简单,需要支持最简单的restful调用,支持json,form内容格式,支持Primise

遇到的坑

做常用的client一般都是:

  1. superagent
  2. axios
  3. needle
  4. request
  5. got
  6. axios-mini
    等等
    这些包非常优秀,大都同时支持浏览器和node,但是动则几百KB,甚至几MB,过于庞大

轻量级

于是笔者找一些轻量级的包:

  1. http.min : 7KB,node only
  2. centra :10KB, node only
  3. reeq : 10KB , 浏览器only
  4. send-request :15KB, node only
  5. unirest : 轻量级,开玩笑。。
  6. phin: 12kb,只支持node
  7. ddflyio : 490KB 开玩笑
  8. gotch :几十KB,只支持浏览器
  9. phax : 12KB,只支持node
    10.lightning-request :20KB,only node
  10. awi : 200KB ,轻量?
  11. xeta : 170KB,轻量?
  12. requesta : 12KB,node only
  13. luch : 230KB , 轻量?
  14. phax : 17KB,浏览器 only

总而言之,比较绝望,还是自己实现一个轻量级的client:mini.req.js

mini.req.js

功能如下:
1.极小:5KB以下
2. 同时支持浏览器和node
3. 根据当前环境自动切换,内部集成reeq和centra
4. 可在html单独使用
5. 支持promise,await
6. 主流接口调用封装,并自动识别传参类型及返回值类型

miniReq('http://localhost/hello','POST',{ hello : 'world'}).then(res=>{})

(async ()=>{
	var get = await miniReq.get(url,data,options)
	var post = await miniReq.post(url,data,options)
	var put = await miniReq.put(url,data,options)
	var del = await miniReq.delete(url,data,options)
})()
  1. 支持browserify

源码

https://github.com/apporoad/mini.req.js 喜欢请支持,但求star❤

 类似资料: