Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
fly63工具箱
简单、易用、便捷的在线工具
美图设计室
AI智能一键生成海报,免费平面设计
任推邦
APP推广项目分发和流量变现平台
硅云优惠券
领先的基础云计算服务提供商,PHP云虚拟主机第一品牌
扣子Coze
职场AI,就用扣子
蜂小推
不扣量的项目推广平台
阿里云优惠券
卓越的云计算技术和服务提供商
豆包AI
字节跳动旗下 AI 智能助手
堆友AI
零门槛,多风格AI绘画免费生成,电商海报设计神器
SpeedAI
一键去重、降AIGC率、数据可视化、论文写作

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

undici

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://undici.nodejs.org/
GitHub:https://github.com/nodejs/undici
网站描述:一个新的 Node.js相关的http请求库
访问官网
GitHub

undici 从头开始为Node.js编写的HTTP / 1.1客户端。 Undici在意大利语中的含义是11。 1.1-> 11-> 11-> Undici。 它也是《陌生人事物》参考。 undici,它比内置的 HTTP 模块还要快,undici 团队致力于为 Node.js 开发快速、可靠且符合规范的 HTTP 客户端。


背景

“很多人仍然问我们为什么要构建 Node.js 核心 HTTP 堆栈的替代品——虽然它对他们来说效果很好。现实情况是,Node.js 核心 HTTP 堆栈存在基本设计问题,如果不破坏 api,就无法克服这些问题。在不破坏我们的大多数用户的情况下,我们无法修复某些错误或性能瓶颈——无论是在客户端还是服务器实现上,因为它们紧密相连。” 


上手

我们可以直接通过 npm 来安装 undici:

npm install undici -S

undici 对外暴露一个对象,该对象下面提供了几个 API:

  • undici.fetch:发起一个请求,和浏览器中的 fetch 方法一致;
  • undici.request:发起一个请求,和 request 库有点类似,该方法支持 Promise;
  • undici.stream:处理文件流,可以用来进行文件的下载;


基准测试

下面是一个在 Node.js 16 上做的一个基准测试,通过与最慢的数据做对比,之间相差还是挺大的。

Connections 1

TestsSamplesResultToleranceDifference with slowest
http - no keepalive154.63 req/sec± 2.77 %-
http - keepalive104.81 req/sec± 2.16 %+ 3.94 %
undici - stream2562.22 req/sec± 2.67 %+ 1244.58 %
undici - dispatch1564.33 req/sec± 2.47 %+ 1290.24 %
undici - request1566.08 req/sec± 2.48 %+ 1327.88 %
undici - pipeline1066.13 req/sec± 1.39 %+ 1329.08 %

Connections 50

TestsSamplesResultToleranceDifference with slowest
http - no keepalive503546.49 req/sec± 2.90 %-
http - keepalive155692.67 req/sec± 2.48 %+ 60.52 %
undici - pipeline258478.71 req/sec± 2.62 %+ 139.07 %
undici - request209766.66 req/sec± 2.79 %+ 175.39 %
undici - stream1510109.74 req/sec± 2.94 %+ 185.06 %
undici - dispatch2510949.73 req/sec± 2.54 %+ 208.75 %


实例

import { request } from 'undici'

const {
statusCode,
headers,
trailers,
body
} = await request('http://localhost:3000/foo')

console.log('response received', statusCode)
console.log('headers', headers)

for await (const data of body) {
console.log('data', data)
}

console.log('trailers', trailers)


仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/3412

更多»
热门资源
node
一个基于 Chrome V8 引擎的 JavaScript 运行环境
官网
GitHub
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架
官网
GitHub
pm2
pm2 是一个带有负载均衡功能的Node应用的进程管理器
官网
GitHub
Koa
基于 Node.js 平台的下一代 web 开发框架
官网
GitHub
Egg.js
为企业级框架和应用而生
官网
GitHub
Primus
通用包装器实时框架
点击进入
GitHub
Electrode
一个用于构建通用 React / Node.js 应用程序的平台
点击进入
GitHub
faye-websocket
Node.js 应用程序中命令预先存在的 WebSocket 连接
点击进入
GitHub
vm2
一个Node.js 官方 vm 库的替代品
点击进入
GitHub
node-opencv
node视觉算法库
官网
GitHub
node-xml2js
Json与xml相互转化的工具
点击进入
GitHub
node-red
一套开源可视化界面开发工具
官网
GitHub
类似于undici的资源
knex.js
是bookshelf框架的基础,其核心是query builder
官网
GitHub
nodebestpractices
NodeJS最佳实践
官网
GitHub
socketstream
实时Web应用程序的框架
官网
GitHub
synaptic
用于 Node.js 和浏览器的自由结构神经网络库
官网
GitHub
node-schedule
一个Node.js的灵活的类似cron又不类似的任务调度库
点击进入
GitHub
Kraken.js
基于 express 构建,实现对环境变量的感知、动态配置、高级中间件和应用生命周期的事件通知
官网
GitHub
ThinkJS
是奇舞团开源的一款 Node.js 框架
官网
GitHub
mongoose
在node.js异步环境下对mongodb进行便捷操作的对象模型工具
官网
GitHub
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。