Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
阿里云优惠券
卓越的云计算技术和服务提供商
腾讯云优惠券
云服务器,云数据库,CDN,域名注册等多种云计算服务
扣子Coze
创建属于你的 AI 应用,AI Agent智能办公平台
豆包AI
字节跳动旗下 AI 智能助手
即梦AI
一站式智能创作平台,即刻造梦
AiPPT
全智能AI一键生成 PPT
堆友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的资源
jsdom
用于在node中解析html
官网
GitHub
log4js
在Nodejs中使用express框架并没有自带的日志模块
点击进入
GitHub
NeDB
用JavaScript编写的嵌入式数据库
点击进入
GitHub
Node-SpliderApi
基于 Node.js 爬虫的数据 API
官网
GitHub
node-red
一套开源可视化界面开发工具
官网
GitHub
chalk
修改控制台中字符串的样式
点击进入
GitHub
Koa
基于 Node.js 平台的下一代 web 开发框架
官网
GitHub
loopback
基于Express 的web架构,提供一套ORM解决方案
官网
GitHub
目录

手机扫一扫预览

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

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