面向开发人员的 Node.js 资源:您需要的指南、库和工具
创建者: 0x1da49
探索我收集的创新资源:
- 0x3d - @0x3d_site
- 0x4c - @0x4c-quest
- 0x5a
- 0x6g
- 0x7b
- 0x8h
- Newwz.Space
- Gittech - @gittech
内容
- 官方
-
套餐
- 疯狂科学
- 命令行应用程序
- 函数式编程
- HTTP
- 调试/分析
- 记录
- 命令行实用程序
- 构建工具
- 硬件
- 模板
- 网络框架
- 文档
- 文件系统
- 控制流程
- 直播
- 实时
- 图片
- 文字
- 数字
- 数学
- 日期
- 网址
- 数据验证
- 解析
- 人性化
- 压缩
- 网络
- 数据库
- 测试
- 安全
- 基准测试
- 缩小器
- 身份验证
- 授权
- 电子邮件
- 作业队列
- Node.js 管理
- 跨平台集成
- 自然语言处理
- 流程管理
- 自动化
- AST
- 静态站点生成器
- 内容管理系统
- 论坛
- 博客
- 奇怪
- 连载
- 杂项
- 包管理器
-
资源
- 教程
- 发现
- 文章
- 时事通讯
- 视频
- 书籍
- 博客
- 课程
- 备忘单
- 工具
- 社区
- 杂项
- 相关列表
官方的
- 网站
- 文档
- 存储库
套餐
疯狂的科学
- webtorrent - Node.js 和浏览器的流媒体 torrent 客户端。
- peerflix - 流媒体 torrent 客户端。
- ipfs - 分布式文件系统,旨在将所有计算设备连接到同一文件系统。
- stackgl - WebGL 的开放软件生态系统,构建在 browserify 和 npm 之上。
- peerwiki - BitTorrent 上的所有维基百科。
- peercast - 将 torrent 视频流式传输到 Chromecast。
- BitcoinJS - 干净、可读、经过验证的比特币库。
- Bitcore - 纯粹而强大的比特币库。
- PDFKit - PDF 生成库。
- turf - 模块化地理空间处理和分析引擎。
- webcat - 使用 WebRTC 在网络上进行 p2p 管道,该管道使用您的 GitHub 私钥/公钥进行身份验证。
- NodeOS - 第一个由 npm 提供支持的操作系统。
- YodaOS - 人工智能操作系统。
- Brain.js - 机器学习框架。
- Pipcook - 用于创建机器学习管道的前端算法框架。
- Cytoscape.js - 图论(又名网络)建模和分析。
- js-git - Git 的 JavaScript 实现。
- xlsx - 纯 JS Excel 电子表格阅读器和编写器。
- isomorphic-git - Git 的纯 JavaScript 实现。
命令行应用程序
- np - 更好的 npm 发布。
- npm-name - 检查 npm 上的软件包名称的可用性。
- gh-home - 在当前目录中打开存储库的 GitHub 页面。
- npm-home - 打开包的 npm 页面。
- 垃圾 - rm 的更安全替代品。
- speed-test - 测试您的互联网连接速度和 ping。
- pageres - 捕获网站屏幕截图。
- cpy - 复制文件。
- vtop - 更好的顶部,带有漂亮的图表。
- 清空垃圾箱 - 清空垃圾箱。
- is-up - 检查网站是打开还是关闭。
- is-online - 检查互联网连接是否已连接。
- public-ip - 获取您的公共 IP 地址。
- Clipboard-cli - 复制并粘贴到终端上。
- XO - 使用 JavaScript 幸福风格强制执行严格的代码风格。
- ESLint - JavaScript 的可插入 linting 实用程序。
- David - 当你的包 npm 依赖项过期时告诉你。
- http-server - 简单、零配置的命令行 HTTP 服务器。
- Live Server - 具有 livereload 功能的开发 HTTP 服务器。
- bcat - 将命令输出传输到网络浏览器。
- normit - 在您的终端中进行语音合成的谷歌翻译。
- fkill - 出色地杀死进程。跨平台。
- pjs - 可管道化的 JavaScript。从终端快速过滤、映射和减少。
- 许可证检查器 - 检查应用程序依赖项的许可证。
- browser-run - 在浏览器环境中轻松运行代码。
- tmpin - 向任何接受文件输入的 CLI 应用程序添加标准输入支持。
- 壁纸 - 更改桌面壁纸。
- pen - 从您最喜欢的编辑器在浏览器中实时 Markdown 预览。
- 深色模式 - 切换 macOS 深色模式。
- Jsome - 使用可配置的颜色和缩进漂亮地打印 JSON。
- mobicon - 移动应用程序图标生成器。
- mobisplash - 移动应用程序启动画面生成器。
- diff2html-cli - 漂亮的 git diff 到 HTML 生成器。
- trymodule - 在终端中尝试 npm 包。
- jscpd - 源代码的复制/粘贴检测器。
- atmo - 服务器端 API 模拟。
- 自动安装 - 在您编写代码时自动安装依赖项。
- lessmd - 终端中的 Markdown。
- 模块成本 - 找出哪些依赖项正在拖慢你的速度。
- localtunnel - 将您的本地主机暴露给世界。
- svg-term-cli - 通过 SVG 共享终端会话。
- gtop - 终端的系统监控仪表板。
- themer - 为您的编辑器、终端、壁纸、Slack 等生成主题。
- Carbon-now-cli - 代码的美丽图像 - 来自终端内部。
- cash-cli - 在 170 种货币之间进行转换。
- 任务簿 - 命令行栖息地的任务、看板和注释。
- discharge - 轻松将静态网站部署到 Amazon S3。
- npkill - 轻松查找并删除旧的和沉重的 node_modules 文件夹。
函数式编程
- lodash - 提供一致性、定制、性能和附加功能的实用程序库。更好更快的 Underscore.js。
- immutable - 不可变的数据集合。
- Ramda - 实用程序库,重点关注通过自动柯里化和反向参数顺序实现的灵活功能组合。避免改变数据。
- Mout - 实用程序库与其他现有解决方案最大的区别是您可以选择仅加载您需要的模块/功能,没有额外的开销。
- RxJS - 用于转换、组合和查询各种数据的功能反应库。
- Kefir.js - 专注于高性能和低内存使用量的反应式库。
HTTP协议
- 得到 - 内置 http 模块的更好的接口。
- undici - 从头开始编写的高性能 HTTP 客户端,零依赖性。
- ky-universal - 基于 Fetch 的通用 HTTP 客户端。
- node-fetch - Node.js 的 window.fetch。
- axios - 基于 Promise 的 HTTP 客户端(也可以在浏览器中工作)。
- superagent - HTTP 请求库。
- http-fake-backend - 通过可配置的路由提供 JSON 文件或 JavaScript 对象的内容来构建假后端。
- cacheable-request - 使用 RFC 兼容的缓存支持包装本机 HTTP 请求。
- gotql - 基于 got 构建的 GraphQL 请求库。
- global-agent - 可使用环境变量进行配置的全局 HTTP/HTTPS 代理。
- Smoke - 具有记录功能的基于文件的 HTTP 模拟服务器。
- 最纯粹 - REST 客户端。
调试/分析
- debug - 小型调试实用程序。
- Why-is-node-running - Node.js 正在运行,但你不知道为什么?
- njsTrace - 检测和跟踪您的代码,查看所有函数调用、参数、返回值以及每个函数花费的时间。
- vstream - 可仪表化的流混合来检查流管道。
- stackman - 使用代码摘录和其他好东西增强错误堆栈跟踪。
- locus - 在运行时启动可以访问所有变量的 REPL。
- 0x - 火焰图分析。
- ctrace - 格式良好且经过改进的跟踪系统调用和信号。
- 泄漏 - 编写内存泄漏测试。
- llnode - 事后分析工具,可让您检查对象并从崩溃的 Node.js 进程中获取见解。
- thetool - 以 Chrome DevTools 友好的格式为您的应用捕获不同的 CPU、内存和其他配置文件。
- swagger-stats - 跟踪 API 调用并监控 API 性能、运行状况和使用指标。
- NiM - 管理 DevTools 调试工作流程。
- dats - 简约且零依赖的 StatsD 客户端。
记录
- pino - 受 Bunyan 启发的极快记录器。
- winston - 多传输异步日志记录库。
- console-log-level - 可以想象到的最简单的记录器,支持日志级别和自定义前缀。
- 故事板 - 端到端、分层、实时、丰富多彩的日志和故事。
- consola - 控制台记录器。
命令行实用程序
- chalk - 终端字符串样式正确完成。
- meow - CLI 应用程序助手。
- yargs - 自动生成优雅的用户界面的命令行解析器。
- ora - 优雅的终端旋转器。
- get-stdin - 更简单的标准输入。
- log-update - 通过覆盖终端中以前的输出来记录。对于渲染进度条、动画等很有用
- Ink - React 用于交互式命令行应用程序。
- listr2 - 终端任务列表。
- conf - 您的应用程序或模块的简单配置处理。
- ansi-escapes - 用于操作终端的 ANSI 转义码。
- log-symbols - 各种日志级别的彩色符号。
- 数字 - 带有 Windows CMD 后备的 Unicode 符号。
- boxen - 在终端中创建盒子。
- Terminal-link - 在终端中创建可点击的链接。
- Terminal-image - 在终端中显示图像。
- string-width - 获取字符串的视觉宽度 - 显示它所需的列数。
- cli-truncate - 在终端中将字符串截断为特定宽度。
- 祝福 - 类似诅咒的库。
- Inquirer.js - 交互式命令行提示符。
- yn - 解析是/否等值。
- cli-table3 - 漂亮的 unicode 表。
- drawille - 使用 unicode 盲文字符在终端上绘制。
- ascii-charts - 终端中的 ASCII 条形图。
- 进度 - 灵活的 ascii 进度条。
- 洞察力 - 通过向 Google Analytics 匿名报告使用指标,帮助您了解工具的使用情况。
- cli-cursor - 切换 CLI 光标。
- cli-columns - 列式 unicode 和 ansi 安全文本列表。
- cfonts - 控制台的性感 ASCII 字体。
- multispinner - 多个、同时、单独控制的 CLI 旋转器。
- omelette - Shell 自动补全助手。
- cross-env - 设置跨平台环境变量。
- shelljs - 便携式 Unix shell 命令。
- sudo-block - 阻止用户使用 root 权限运行您的应用程序。
- Sparkly - 生成迷你图 ▂▃▅▂▇。
- Bit - 跨存储库创建、维护、查找和使用小模块和组件。
- 渐变字符串 - 终端输出中美丽的颜色渐变。
- ocif - CLI 框架,配有解析器、自动文档、测试和插件。
- Terminal-size - 可靠地获取终端窗口大小。
- Cliffy - 交互式 CLI 框架。
- zx - 编写 shell 脚本 JavaScript。
构建工具
- Parcel - 速度极快、零配置的 Web 应用程序捆绑器。
- webpack - 为浏览器打包模块和资源。
- rollup - 下一代 ES2015 模块捆绑器。
- gulp - 流媒体和快速构建系统,有利于代码而不是配置。
- Broccoli - 快速、可靠的资产管道,支持恒定时间重建和紧凑的构建定义。
- Brunch - 前端 Web 应用程序构建工具,具有简单的声明性配置、快速增量编译和固执己见的工作流程。
- FuseBox - 快速构建系统,结合了 webpack、JSPM 和 SystemJS 的强大功能,以及一流的 TypeScript 支持。
- pkg - 将 Node.js 项目打包成可执行文件。
- Vite - 具有热模块替换和静态资源捆绑功能的前端构建工具。
硬件
- johnny- Five - 基于 Firmata 的 Arduino 框架。
- 串行端口 - 访问串行端口以进行读写。
- usb - USB 库。
- i2c-bus - I2C 串行总线访问。
- onoff - GPIO 访问和中断检测。
- spi-device - SPI 串行总线访问。
- Pigpio - Raspberry Pi 上的快速 GPIO、PWM、伺服控制、状态更改通知和中断处理。
- gps - 用于处理 GPS 接收器的 NMEA 解析器。
- modbus-serial - MODBUS-RTU(串行和 TCP)的纯 JavaScript 实现。
模板化
- marko - 基于 HTML 的模板引擎,可将模板编译为 CommonJS 模块并支持流式传输、异步渲染和自定义标签。
- nunjucks - 具有继承、异步控制等功能的模板引擎(受 jinja2 启发)。
- handlebars.js - Mustache 模板的超集,添加了帮助程序和更高级的块等强大功能。
- EJS - 简单的、不带偏见的模板语言。
- Pug - 深受 Haml 影响的高性能模板引擎。
网络框架
- Fastify - 快速且低开销的 Web 框架。
- Next.js - 服务器渲染通用 JavaScript Web 应用程序的简约框架。
- Nuxt.js - 服务器渲染 Vue.js 应用程序的简约框架。
- Hapi - 用于构建应用程序和服务的框架。
- Micro - 采用异步方法的简约微服务框架。
- Koa - 由 Express 背后的团队设计的框架,旨在成为 Web 应用程序和 API 的更小、更具表现力和更强大的基础。
- Express - Web 应用程序框架,提供了一组强大的功能来构建单页、多页以及混合 Web 应用程序。
- Feathers - 以 Express 精神构建的微服务框架。
- LoopBack - 用于创建 REST API 并轻松连接到后端数据源的强大框架。
- Meteor - 一个超简单、数据库无处不在、在线数据、纯 Javascript Web 框架。 (你可能喜欢awesome-meteor)
- Restify - 使您能够构建正确的 REST Web 服务。
- ThinkJS - 支持 ES2015、WebSockets、REST API 的框架。
- ActionHero - 为 TCP 套接字、WebSocket 和 HTTP 客户端制作可重用和可扩展 API 的框架。
- seneca - 用于编写微服务的工具包。
- AdonisJs - Node.js 的真正 MVC 框架,建立在依赖注入和 IoC 容器的坚实基础上。
- Moleculer - 快速且强大的微服务框架。
- Nest - 受 Angular 启发的框架,用于构建高效且可扩展的服务器端应用程序。
- TypeGraphQL - 使用 TypeScript 使用类和装饰器创建 GraphQL API 的现代框架。
- Tinyhttp - 现代且快速的类似 Express 的 Web 框架。
- Marble.js - 基于 TypeScript 和 RxJS 的用于构建服务器端应用程序的功能反应框架。
- Lad - 由前 Express TC 和 Koa 成员制作的框架,捆绑了 Web、API、作业和代理服务器。
- Ts.ED - 用于在 Express.js 或 Koa.js 之上构建服务器端应用程序的直观 TypeScript 框架。
- Hono - 小而快速的网络框架。
文档
- Documentation.js - API 文档生成器,支持 ES2015 和流注释。
- Docco - 文档生成器,可生成 HTML 文档,显示与代码混合的注释。
- JSDoc - 类似于 JavaDoc 或 PHPDoc 的 API 文档生成器。
- Docusaurus - 利用 React 和 Markdown 的文档网站生成器,并具有翻译和版本控制功能。
文件系统
- del - 使用 glob 删除文件/文件夹。
- globby - 支持多种模式的 Glob 文件。
- chokidar - 文件系统观察器,可稳定来自 fs.watch 和 fs.watchFile 的事件以及在 macOS 上使用本机 fsevents。
- find-up - 通过向上查找父目录来查找文件。
- proper-lockfile - 进程间和机器间锁定文件实用程序。
- load-json-file - 读取并解析 JSON 文件。
- write-json-file - 以原子方式将 JSON 字符串化并写入文件。
- fs-write-stream-atomic - 类似于 fs.createWriteStream(),但是是原子的。
- filenamify - 将字符串转换为有效的文件名。
- istextorbinary - 检查文件是文本还是二进制。
- fs-jetpack - 完全重新设计的文件系统 API,方便日常使用。
- fs-extra - fs 模块的额外方法。
- pkg-dir - 查找 npm 包的根目录。
- filehound - 用于搜索文件系统的灵活流畅的界面。
- move-file - 移动文件,甚至可以跨设备工作。
- tempy - 获取随机临时文件或目录路径。
控制流程
- 承诺
- pify - Promisify 回调式函数。
- 延迟 - 将承诺延迟指定的时间。
- Promise-memoize - 记忆 Promise 返回函数,具有过期和预取功能。
- Valvelet - 限制承诺返回函数的执行率。
- p-map - 同时映射 Promise。
- 更多...
- 可观察值
- RxJS - 响应式编程。
- observable-to-promise - 将 Observable 转换为 Promise。
- 更多...
- 流
- Highland.js - 只需使用标准 JavaScript 和类似 Node 的流即可轻松管理同步和异步代码。
流
- get-stream - 获取字符串或缓冲区形式的流。
- from2 - ReadableStream 的便捷包装器,受到 through2 的启发。
- into-stream - 将缓冲区/字符串/数组/对象转换为流。
- duplexify - 将可写和可读流转换为单个streams2双工流。
- Pumpify - 将一组流组合成一个双工流。
- peek-stream - 转换流,让您在决定如何解析它之前先查看第一行。
- binary-split - 换行符(或任何分隔符)分割器流。
- byline - 超级简单的逐行流阅读器。
- first-chunk-stream - 转换流中的第一个块。
- pad-stream - 填充流中的每一行。
- 多流 - 将多个流合并为一个流。
- 可读流 - 核心中 Streams2 和 Streams3 实现的镜像。
- through2-concurrent - 同时转换对象流。
即时的
- µWebSockets - 高度可扩展的 WebSocket 服务器和客户端库。
- Socket.io - 实现基于事件的实时双向通信。
- Faye - 基于 Bayeux 协议的实时客户端-服务器消息总线。
- SocketCluster - 可在多个 CPU 核心上运行的可扩展 HTTP WebSocket 引擎。
- Primus - 实时框架的抽象层,用于防止模块锁定。
- deepstream.io - 可扩展的实时微服务框架。
- Kalm - 低级套接字路由器和中间件框架。
- MQTT.js - MQTT 客户端 - 基于 Pub-sub 的消息协议,在 TCP/IP 之上使用。
- rpc-websockets - 通过 WebSockets 实现 JSON-RPC 2.0。
- Aedes - Barebone MQTT 服务器,可以在任何流服务器上运行。
图像
- Sharp - 用于调整 JPEG、PNG、WebP 和 TIFF 图像大小的最快模块。
- image-type - 检测图像的类型。
- image-dimensions - 获取图像的尺寸。
- gm - GraphicsMagick 和 ImageMagick 包装器。
- lwip - 不需要 ImageMagick 的轻量级图像处理器。
- pica - 纯 JS 中的高质量和快速调整大小(lanczos3)。当不允许像素化时,替代画布drawImage()。
- jimp - 纯 JavaScript 中的图像处理。
- qrcode - 二维码和条形码生成器。
- ImageScript - JavaScript 中的图像处理,利用 WebAssembly 提高性能。
文本
- iconv-lite - 转换字符编码。
- string-length - 通过正确计算星体符号并忽略 ansi 转义码来获取字符串的实际长度。
- 驼峰命名法 - 将破折号/点/下划线/空格分隔的字符串转换为驼峰命名法:foo-bar → fooBar.
- escape-string-regexp - 转义 RegExp 特殊字符。
- splice-string - 删除或替换字符串的一部分,如 Array#splice。
- indent-string - 缩进字符串中的每一行。
- strip-indent - 去除字符串中每一行的前导空格。
- detector-indent - 检测代码的缩进。
- he - HTML 实体编码器/解码器。
- i18n-node - 具有动态 JSON 存储的简单翻译模块。
- babelfish - i18n 具有非常简单的复数语法。
- matcher - 简单的通配符匹配。
- unhomoglyph - 标准化视觉上相似的 unicode 字符。
- i18next - 国际化框架。
- nanoid - 微型、安全、URL 友好、唯一的字符串 ID 生成器。
- StegCloak - 将秘密隐藏在字符串中,一目了然。
数字
- random-int - 生成一个随机整数。
- random-float - 生成随机浮点数。
- unique-random - 生成连续唯一的随机数。
- round-to - 将数字四舍五入到特定的小数位数:1.234 → 1.2。
数学
- ndarray - 多维数组。
- mathjs - 一个丰富的数学库。
- math-clamp - 钳位一个数字。
- 代数 - 代数结构。
- multimath - 在 WebAssembly 和 JS 中创建快速图像数学的核心。
日期
- Luxon - 用于处理日期和时间的库。
- date-fns - 现代日期实用程序。
- Day.js - Moment.js 的不可变日期库替代品。
- dateformat - 日期格式。
- tz-format - 使用时区格式化日期:2015-11-30T10:40:35 01:00。
- cctz - 日期的快速解析、格式化和时区对话。
网址
- normalize-url - 规范化 URL。
- humanize-url - 人性化 URL:https://sindresorhus.com → sindresorhus.com。
- url-unshort - 展开缩短的 URL。
- talkurl - 从带有音译的字符串生成一个 slug。
- linkify-it - 具有完整 unicode 支持的链接模式检测器。
- url-pattern - 比 URL 和其他字符串的正则表达式字符串匹配模式更容易。
- embedza - 使用 oEmbed、Open Graph、元标记中的信息从 URL 创建 HTML 片段/嵌入。
数据验证
- joi - JavaScript 对象的对象模式描述语言和验证器。
- is-my-json-valid - JSON 模式验证器,使用代码生成速度非常快。
- property-validator - Express 的简单属性验证。
- schema-inspector - JSON API 清理和验证。
- ajv - 最快的 JSON 模式验证器。支持 v5、v6 和 v7 提案。
- Superstruct - 在 JavaScript(和 TypeScript)中验证数据的简单且可组合的方式。
- 是的 - 对象模式验证。
- zod - 使用静态类型推断的 TypeScript-first 模式验证。
解析
- 备注 - 由插件支持的 Markdown 处理器。
- markdown-it - Markdown 解析器,具有 100% CommonMark 支持、扩展和语法插件。
- parse5 - 快速、全功能、符合规范的 HTML 解析器。
- @parcel/css - 用 Rust 编写的 CSS 解析器、转换器和压缩器。
- strip-json-comments - 从 JSON 中删除注释。
- strip-css-comments - 从 CSS 中删除注释。
- parse-json - 解析 JSON 并提供更多有用的错误。
- URI.js - URL 突变。
- JSONStream - 流式传输 JSON.parse 和 stringify。
- clean-csv - 快速 CSV 解析器。以上的回调接口。
- csv-parser - 流式 CSV 解析器,旨在比其他人更快。
- PEG.js - 简单的解析器生成器,可生成具有出色错误报告的快速解析器。
- x-ray - 网页抓取实用程序。
- 近利 - 简单,快速,强大的 JavaScript 解析。
- binary-extract - 从 JSON 缓冲区中提取值而不解析整个内容。
- Stylecow - 解析、操作和转换现代 CSS,使其与所有浏览器兼容。可通过插件扩展。
- js-yaml - 非常快的 YAML 解析器。
- xml2js - XML 到 JavaScript 对象转换器。
- Jison - 友好的 JavaScript 解析器生成器。它与 Bison、Yacc 及其家人共享基因。
- google-libphonenumber - 解析、格式化、存储和验证电话号码。
- ref - 读取/写入缓冲区中的结构化二进制数据。
- xlsx-populate - 读/写 Excel XLSX。
- Chevrotain - 非常快速且功能丰富的 JavaScript 解析器构建工具包。
- fast-xml-parser - 验证和解析 XML。
人性化
- Pretty-bytes - 将字节转换为人类可读的字符串:1337 → 1.34 kB。
- Pretty-ms - 将毫秒转换为人类可读的字符串:1337000000 → 15d 11h 23m 20s。
- ms - 微小的毫秒转换实用程序。
- Pretty-error - 错误较少混乱。
- read-art - 从任何页面提取可读内容。
压缩
- yazl - 邮政编码。
- yauzl - 解压。
- Archiver - 用于生成存档的流接口,支持 ZIP 和 TAR。
- pako - 到纯 js 的高速 zlib 端口(deflate、inflate、gzip)。
- tar-stream - 流式 tar 解析器和生成器。另请参阅 tar-fs。
网络
- get-port - 获取可用端口。
- ipify - 获取您的公共 IP 地址。
- getmac - 获取计算机 MAC 地址。
- DHCP - DHCP 客户端和服务器。
- netcat - 纯 JS 中的 Netcat 端口。
数据库
- 司机
- PostgreSQL - PostgreSQL 客户端。纯 JavaScript 和本机 libpq 绑定。
- Redis - Redis 客户端。
- LevelUP - LevelDB。
- MySQL - MySQL 客户端。
- couchdb-nano -CouchDB 客户端。
- Aerospike - Aerospike 客户端。
- Couchbase - Couchbase 客户端。
- MongoDB - MongoDB 驱动程序。
- ODM / ORM
- Sequelize - 多方言 ORM。支持 PostgreSQL、SQLite、MySQL 等。
- Bookshelf - 采用 Backbone.js 风格的 PostgreSQL、MySQL 和 SQLite3 的 ORM。
- Mongoose - 优雅的 MongoDB 对象建模。
- Waterline - 与数据存储无关的工具,可极大地简化与一个或多个数据库的交互。
- OpenRecord - 适用于 PostgreSQL、MySQL、SQLite3 和 RESTful 数据存储的 ORM。类似于 ActiveRecord。
- pg-promise - 使用 Promise 的本机 SQL 的 PostgreSQL 框架。
- slonik - 具有严格类型、详细日志记录和断言的 PostgreSQL 客户端。
- Objection.js - 基于 SQL 查询生成器 Knex 构建的轻量级 ORM。
- TypeORM - 适用于 PostgreSQL、MariaDB、MySQL、SQLite 等的 ORM。
- MikroORM - 基于数据映射器、工作单元和身份映射模式的 TypeScript ORM。支持 MongoDB、PostgreSQL、MySQL 和 SQLite。
- Prisma - 现代数据库访问(ORM 替代方案)。 TypeScript 中自动生成且类型安全的查询生成器。支持 PostgreSQL、MySQL 和 SQLite。
- Drizzle ORM - 支持各种数据库(例如 PostgreSQL)的 TypeScript ORM。
- 查询生成器
- Knex - 适用于 PostgreSQL、MySQL 和 SQLite3 的查询构建器,设计灵活、可移植且使用起来有趣。
- 其他
- NeDB - 用 JavaScript 编写的嵌入式持久数据库。
- Lowdb - 由 Lodash 提供支持的小型 JavaScript 数据库。
- Keyv - 简单的键值存储,支持多个后端。
- Finale - 适用于 Sequelize 模型的 RESTful 端点生成器。
- database-js - 具有类似 JDBC 连接的多个数据库的包装器。
- Mongo Seeding - 使用 JavaScript 和 JSON 文件填充 MongoDB 数据库。
- @databases - 使用纯 SQL 查询 PostgreSQL、MySQL 和 SQLite3,而不存在 SQL 注入的风险。
- pg-mem - 用于测试的内存 PostgreSQL 实例。
测试
- AVA - 未来派测试运行程序。
- Mocha - 功能丰富的测试框架,使异步测试变得简单有趣。
- nyc - 在 istanbul 上构建的代码覆盖工具,可与子流程配合使用。
- tap - TAP 测试框架。
- 胶带 - TAP 生产测试工具。
- power-assert - 通过标准断言接口提供描述性断言消息。
- Mochify - 使用 Browserify、Mocha、PhantomJS 和 WebDriver 进行 TDD。
- trevor - 针对多个版本的 Node.js 运行测试,无需手动切换版本或推送到 Travis CI。
- loadtest - 使用自动化 API 为您的 Web 应用程序运行负载测试。
- Sinon.JS - 测试间谍、存根和模拟。
- navit - PhantomJS / SlimerJS 包装器,用于简化浏览器测试脚本。
- Nock - HTTP 模拟和期望。
- 实习生 - 代码测试堆栈。
- toxy - 可破解的 HTTP 代理来模拟故障场景和网络条件。
- hook-std - 挂钩并修改 stdout/stderr。
- testen - 使用 NVM 在本地运行多个版本的 Node.js 测试。
- Nightwatch - 基于 Selenium WebDriver 的自动化 UI 测试框架。
- WebdriverIO - 基于 WebDriver 协议的自动化测试。
- Jest - 无痛 JavaScript 测试。
- TestCafe - 自动化浏览器测试。
- abstruse - 持续集成服务器。
- CodeceptJS - 端到端测试。
- 木偶师 - 无头 Chrome。
- Playwright - 使用单个 API 的 Headless Chromium、WebKit 和 Firefox。
- nve - 在本地多个版本的 Node.js 上运行任何命令。
- axe-core - 用于自动化 Web UI 测试的辅助功能引擎。
- testcontainers-node - 提供通用数据库、Selenium Web 浏览器或任何其他可以在 Docker 容器中运行的东西的轻量级一次性实例。
安全
- upash - 所有密码哈希算法的统一 API。
- themis - 多语言框架,使典型的加密方案易于使用:静态数据、经过身份验证的数据交换、传输保护、身份验证等。
- GuardRails - 在拉取请求中提供安全反馈的 GitHub 应用程序。
- rate-limiter-flexible - 暴力破解和 DDoS 攻击防护。
- crypto-hash - 异步非阻塞哈希。
- jose-simple - 使用 JOSE(JSON 对象签名和加密)标准加密和解密数据。
标杆管理
- Benchmark.js - 支持高分辨率计时器并返回具有统计意义的结果的基准测试库。
缩小器
- babel-minify - 基于 Babel 工具链的 ES2015 感知压缩器。
- UglifyJS2 - JavaScript 压缩器。
- clean-css -CSS 缩小器。
- 最小化 - HTML 缩小器。
- imagemin - 图像缩小器。
验证
- Passport - 简单、不引人注目的身份验证。
- Grant - Express、Koa、Hapi、Fastify、AWS Lambda、Azure、Google Cloud、Vercel 等的 OAuth 提供商。
授权
- CASL - UI 和 API 的同构授权。
- node-casbin - 支持 ACL、RBAC 和 ABAC 等访问控制模型的授权库。
电子邮件
- Nodemailer - 处理电子邮件的最快方式。
- emailjs - 将带有附件的文本/HTML 电子邮件发送到任何 SMTP 服务器。
- email-templates - 创建、预览和发送自定义电子邮件模板。
- MJML - 旨在减少创建响应式电子邮件的痛苦的标记语言。
作业队列
- bull - 持久作业和消息队列。
- 议程 - MongoDB 支持的作业调度。
- idoit - Redis 支持的作业队列引擎,具有高级作业控制。
- node-resque - Redis 支持的作业队列。
- rsmq - Redis 支持的消息队列。
- bee-queue - 高性能 Redis 支持的作业队列。
- RedisSMQ - 简单的高性能 Redis 消息队列,具有实时监控功能。
- sqs-consumer - 构建基于 Amazon Simple Queue Service (SQS) 的应用程序,无需样板。
- better-queue - 当您无法使用 Redis 时简单高效的作业队列。
- bullmq - 持久作业和消息队列。
- bree - 具有工作线程、cron、日期和人类语法支持的作业任务调度程序。
Node.js 管理
- n - Node.js 版本管理。
- nave - Node.js 的虚拟环境。
- nodeenv - 与 Python 的 virtualenv 兼容的 Node.js 虚拟环境。
- nvm for Windows - Windows 版本管理。
- nodenv - 类似于 Ruby 的 rbenv 的版本管理器。支持自动版本切换。
- fnm - 用 Rust 构建的跨平台 Node.js 版本管理器。
跨平台集成
- napi-rs - 通过 Node-API 在 Rust 中构建编译的 Node.js 插件的框架。
- Neon - 用于编写安全快速的本机 Node.js 模块的 Rust 绑定。
- Edge.js - 在 Windows、macOS 和 Linux 上的同一进程中运行 .NET 和 Node.js 代码。
- DotNetJS - 使用此 .NET 互操作层在 Node.js 中使用 .NET 库。
自然语言处理
- retext - 可扩展的自然语言系统。
- franc - 检测文本的语言。
- leven - 使用 Levenshtein 距离算法测量两个字符串之间的差异。
- natural - 自然语言设施。
- nlp.js - 构建机器人,具有实体提取、情感分析、自动语言识别等功能。
流程管理
- PM2 - 高级流程管理器。
- nodemon - 监视应用程序中的更改并自动重新启动服务器。
- node-mac - 作为本机 Mac 守护进程运行脚本并登录到控制台应用程序。
- node-linux - 作为本机系统服务运行脚本并记录到系统日志。
- node-windows - 作为本机 Windows 服务运行脚本并登录到事件查看器。
- Supervisor - 当脚本崩溃时重新启动脚本或在 *.js 文件更改时重新启动。
- Phusion Passenger - 直接集成到 Nginx 的友好流程管理器。
自动化
- robotsjs - 桌面自动化:控制鼠标、键盘并阅读屏幕。
- nut.js - 跨平台本机 GUI 自动化/测试框架,具有与 Jest 集成的图像匹配功能。
谷草转氨酶
- Acorn - 小型、快速的 JavaScript 解析器。
- babel-parser - Babel 中使用的 JavaScript 解析器。
静态站点生成器
- DocPad - 具有动态功能和庞大插件生态系统的静态站点生成器。
- docsify - Markdown 文档站点生成器,没有静态构建的 HTML 文件。
- Charge - 使用 JSX 和 MDX 的自以为是的零配置静态站点生成器。
内容管理系统
- KeystoneJS - 基于 Express 和 MongoDB 构建的 CMS 和 Web 应用程序平台。
- ApostropeCMS - 内容管理系统,重点是基于 Express 和 MongoDB 构建的直观前端内容编辑和管理。
- Strapi - 内容管理框架(headless-CMS),用于构建强大的 API。
- Factor - Vue.js 仪表板框架和无头 CMS。
- AdminBro - 自动生成的管理面板,为您的所有资源提供 CRUD。
- Graphweaver - CMS 和无头 GraphQL API。
论坛
- nodeBB - 现代网络的论坛平台。
写博客
- Ghost - 简单、强大的发布平台。
- Hexo - 快速、简单且功能强大的博客框架。
诡异的
- 奶牛 - ASCII 奶牛。
- 一流 - 变得像词语一样一流。
- 猫名 - 获取流行的猫名。
- 狗名 - 获取流行的狗名。
- 超级英雄 - 获取超级英雄的名字。
- supervillains - 获取超级恶棍的名字。
- Cool-ascii-faces - 获取一些很酷的 ascii 面孔。
- cat-ascii-faces - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”。
- 书呆子 - 从哈利·波特、星球大战和神奇宝贝等书呆子主题中获取数据。
序列化
- snappy - Google Snappy 压缩库的本机绑定。
- protobuf - 协议缓冲区的实现。
- Compactr - Compactr 协议的实现。
各种各样的
- execa - 更好的 child_process。
- Cheerio - 专为服务器设计的核心 jQuery 的快速、灵活和精益实现。
- open - 打开网站、文件、可执行文件等内容。
- hasha - 哈希变得简单。获取缓冲区/字符串/流/文件的哈希值。
- dot-prop - 使用点路径从嵌套对象获取属性。
- onetime - 只运行一次函数。
- mem - 记忆函数 - 一种优化技术,用于通过缓存具有相同输入的调用结果来加速连续函数调用。
- strip-bom - 从字符串/缓冲区/流中剥离 UTF-8 字节顺序标记 (BOM)。
- os-locale - 获取系统区域设置。
- ssh2 - SSH2 客户端和服务器模块。
- adit - SSH 隧道变得简单。
- file-type - 检测 Buffer 的文件类型。
- 瓶颈 - 速率限制器,使节流变得容易。
- webworker-threads - 使用本机线程的轻量级 Web Worker API 实现。
- Clipboardy - 访问系统剪贴板(复制/粘贴)。
- node-pre-gyp - 可以轻松地从二进制文件发布和安装 Node.js C 插件。
- opencv - OpenCV 的绑定。事实上的计算机视觉库。
- dotenv - 从 .env 文件加载环境变量。
- semver - 语义版本解析器。
- nodegit - 与 Git 的本机绑定。
- json-strictify - 安全地将值序列化为 JSON,不会丢失数据或进入无限循环。
- jsdom - HTML 和 DOM 的 JavaScript 实现。
- @sindresorhus/is - 输入检查值。
- env-dot-prop - 使用点路径获取、设置或删除 process.env 的嵌套属性。
- node-video-lib - 纯 JavaScript 库,用于处理 MP4 和 FLV 视频文件并为 HLS 流创建 MPEG-TS 块。
- basic-ftp - FTP/FTPS 客户端。
- cashify - 货币转换。
- genepi - 从 C 代码自动生成本机 Node.js 插件。
- husky - 创建 Git 挂钩脚本。
- patch-package - 制作并保留对 npm 依赖项的修复。
- editly - 声明式视频编辑 API。
- wild-wild-path - 带有通配符和正则表达式的对象属性路径。
- uint8array-extras - 用于使用 Uint8Array 和 Buffer 的有用实用程序。
包管理器
- npm - 默认的包管理器。
- pnpm - 磁盘空间高效的包管理器。
- 纱线 - 替代包管理器。
- Bun - 适用于 JavaScript 和 TypeScript 应用程序的多合一工具包。
资源
教程
- Node.js 最佳实践 - Node.js 最佳实践排名靠前的内容的总结和管理,提供多种语言版本。
- Nodeschool - 通过互动课程学习 Node.js。
- Node 的艺术 - Node.js 简介。
- module-best-practices - 编写新 npm 模块时的一些良好实践。
- Node Way - Node.js 最佳实践和指导原则的完整哲学,用于编写可维护的模块、可扩展的应用程序和实际上令人愉悦的代码。
- 你不知道的 Node.js - Node.js 核心功能和异步 JavaScript 简介。
- 可移植 Node.js 指南 - 有关如何编写可移植/跨平台 Node.js 代码的实用指南。
- 构建一个没有框架的真正的 Web 应用程序 - 一组视频教程/直播,可帮助您使用一些简单的库和核心 Node.js 模块构建和部署一个真正的实时 Web 应用程序。
发现
- npms - 出色的包搜索,使用大量指标对包质量进行深入分析。
- npm 上瘾者 - 你每天注入 npm 包。
- npm-compare.com - 比较和发现 npm 包。
文章
- Node.js 中的错误处理
- 10 个步骤自学 Node.js
- 掌握 Node.js 中的文件系统
- Semver:入门
- Semver:波浪号和插入符
- 为什么异步?
- 了解 Node.js 事件循环
- 理解对象流
- 使用Express快速构建GraphQL服务器
时事通讯
- Node Weekly - Node.js 新闻和文章的每周电子邮件综述。
视频
- Ryan Dahl 介绍 Node.js
- 亲身体验 Node.js
- V8 Garbage Collector - 关于 V8 垃圾收集器的垃圾谈论。
- Ryan Dahl 的《关于 Node.js 我后悔的 10 件事》 - Node.js 的创建者关于其一些局限性的富有洞察力的演讲。
- Mastering REST APIs in Node.js: Zero-To-Hero - 有关如何使用 Node.js 制作 REST API 的视频课程。
- Make a vanilla Node.js REST API - 不使用 Express 等框架构建 REST API。
- Google I/O 2009 - V8:高性能 JavaScript 引擎 - V8 架构的基础知识及其如何优化 JavaScript 执行。
- Google I/O 2012 - 使用 V8 打破 JavaScript 速度限制 - V8 如何优化 JavaScript 执行。
- Google I/O 2013 - Accelerated Oz with V8: Follow the Yellow Brick Road to JavaScript Performance - 如何利用 V8 知识检测应用程序瓶颈并优化性能。
- Node.js 内部架构 | Ignition、Turbofan、Libuv - Node.js 内部工作原理,重点关注 V8 和 libuv。
- libuv 简介:什么是 Unicorn Velociraptor? - libuv 架构、线程池和事件循环及其源代码。
- libuv 跨平台异步 I/O - libuv 架构详细信息,例如它实际使用线程的位置。
- You Don't Know Node - ForwardJS San Francisco - 通过有关 V8、libuv、事件循环、模块、流和集群的测验解释 Node.js 内部结构。
图书
- Node.js 实际应用
- Node.js 实践
- 掌握节点
- Node.js 8 的正确方式
- 专业 Node.js:构建基于 JavaScript 的可扩展软件
- 保护您的 Node.js Web 应用程序
- 表达行动
- 实用现代 JavaScript
- 掌握模块化 JavaScript
- 使用 Node.js 进行编程
- Node.js 食谱
- Node.js 设计模式
博客
- Node.js 博客
- webapplog.com - Practical Node.js 和 Pro Express.js Azat Mardan 的作者关于 Node.js 和 JavaScript 的博客文章。
课程
- 学习使用 Node.js 构建应用程序和 API - Wes Bos 的视频课程。
- 使用 Node.js 的实时 Web
- 学习和理解 Node.js
- Node.js 全栈开发者课程
备忘单
- Express.js
- 流常见问题解答 - 回答有关流的常见问题,涵盖分页、事件等。
- Strong Node.js - Node.js Web 服务源代码安全分析清单。
工具
- OctoLinker - Chrome 扩展,可链接 GitHub 上的 package.json、.js、.jsx、.coffee 和 .md 文件中的依赖项。
- npm-hub - Chrome 扩展,用于在存储库自述文件的底部显示 npm 依赖项。
- RunKit - 在任何网站上嵌入 Node.js 环境。
- github-npm-stats - Chrome 扩展,显示 GitHub 上的 npm 下载统计信息。
- npm semver 计算器 - 直观地探索 semver 范围匹配的软件包版本。
- CodeSandbox - 在线 IDE 和原型设计。
- 放大 - 自动生成功能齐全的应用程序。
- RunJS - 桌面 JavaScript 游乐场。
社区
- 堆栈溢出
- 推特
- 哈希节点
- 不和谐
各种各样的
- nodebots - 由 JavaScript 驱动的机器人。
- node-module-boilerplate - 用于启动创建节点模块的样板。
- Modern-node - 用于使用 Jest、Prettier、ESLint 和 Standard 创建节点模块的工具包。
- Generator-nm - 搭建一个节点模块。
- Microsoft Node.js 指南 - 在 Microsoft 平台上使用 Node.js 的提示、技巧和资源。
- 模块请求和想法 - 请求您希望存在的 JavaScript 模块或获取模块的想法。
- v8-perf - 与 V8 以及 Node.js 性能相关的注释和资源。
创建者: 0x1da49
探索我收集的创新资源:
- 0x3d - @0x3d_site
- 0x4c - @0x4c-quest
- 0x5a
- 0x6g
- 0x7b
- 0x8h
- Newwz.Space
- Gittech - @gittech
以上是面向开发人员的 Node.js 资源:您需要的指南、库和工具的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...
