node.js
文章平均质量分 87
TE-茶叶蛋
全干工程师,阿里云专家博主
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
协同文档开源方案
本文介绍了7种成熟的开源协同文档编辑解决方案:Etherpad(轻量级实时文本编辑器)、OnlyOffice(全功能办公套件)、Collabora Online(基于LibreOffice)、Tiptap(可定制的富文本编辑器)、ShareDB(实时协作数据库)、ProseMirror(灵活的编辑框架)以及Firebase(实时数据库服务)。这些方案各具特色,支持实时协作、版本控制、多格式文档处理等功能。开发者可根据项目需求(如集成难度、实时性要求、文档格式支持等)选择合适的方案,快速实现协同编辑功能。原创 2025-05-25 09:16:15 · 1491 阅读 · 0 评论 -
前端协同文档实现思路
本文介绍了前端协同文档系统的实现技术和方法,主要包括实时同步机制(WebSocket、OT和CRDT算法)、实时文本编辑(Diff算法和协作框架)、后端实现(数据库同步与技术栈)以及前端技术(React/Vue和WebRTC)。此外,还讨论了功能扩展如版本控制和权限管理,并提供了基于Vue.js和Node.js的简单实现示例。协同文档开发需结合多种技术,确保实时性和数据一致性。原创 2025-05-25 09:14:10 · 1049 阅读 · 0 评论 -
Node.js中的洋葱模型
洋葱模型是一种中间件执行机制,通过层层包裹的中间件结构,实现请求从外到内穿透、响应从内向外返回的顺序执行。该模型的核心概念包括类比洋葱的层次结构和中间件通过next()函数传递控制权。实现原理涉及中间件的进入和返回阶段,以及Koa通过koa-compose库严格遵循洋葱模型,而Express基于回调函数可能导致异步中间件执行顺序混乱。框架对比显示Koa更适合精细控制异步流程,而Express在同步场景下更具优势。实际应用场景包括日志记录、统一错误处理和权限验证。总的来说,洋葱模型通过中间件现了请求-响应流程原创 2025-05-13 07:22:55 · 1647 阅读 · 0 评论 -
Nodejs核心机制
本文深入探讨了 Node.js 的核心机制,重点解析了事件循环的六个阶段及其执行顺序,详细说明了 setImmediate 和 setTimeout(fn, 0) 的区别。文章还介绍了事件驱动编程和非阻塞 I/O 的实现方式,以及如何监控和调试内存泄漏。此外,文中对比了 process.nextTick 和 setImmediate 的执行顺序,解释了 Node.js 单线程模型如何通过非阻塞 I/O 和线程池处理并发请求。Cluster 模块的工作原理及其在多核 CPU 环境中的应用也得到了详细说明。最后原创 2025-05-11 23:58:54 · 1149 阅读 · 0 评论 -
K6 性能测试Nest-秒杀场景
🚀 🚀 🚀 k6 传送门🚀 🚀 🚀 k6 Window安装// 建议本地安装k6 没有docker 虚拟化的损失,与配置参数 繁琐// 生成指定数量的用户${// docker run --cpus="1" -i -v "${PWD}:/scripts" loadimpact/k6 run /scripts/seckill-script.js // 建议本地安装k6 没有docker 虚拟化的损失,与配置参数 繁琐 import http from 'k6/http';原创 2025-04-28 13:58:59 · 932 阅读 · 0 评论 -
漏桶算法(Leaky Bucket)与 令牌桶算法(Token Bucket)
漏桶算法(Leaky Bucket)与 令牌桶算法(Token Bucket)想象一个水桶,水滴(请求)不断滴入桶有一个小孔,水以固定速率流出超出桶容量的水滴(过多的请求)直接溢出,丢弃!也是一个桶,但它装的是令牌(token)令牌以固定速率生成(比如每秒100个)每个请求必须拿到令牌才能继续,否则被限流桶可以存令牌,支持短时间突发流量比较维度漏桶算法令牌桶算法出口流量恒定速率,超限丢弃灵活突发,令牌够可以爆发突发流量处理能力❌ 不允许✅ 允许短时突发实现复杂度。原创 2025-04-28 07:19:27 · 1088 阅读 · 0 评论 -
秒杀入口流量防护方案-Nginx + NestJS + Redis 三层限流
Nginx + NestJS + Redis 三层限流层级特点Nginx最先拦截,防大水NestJS细粒度接口/用户限频Redis集群环境统一限流✅ 这样你的秒杀接口就能抗住几十万QPS的大流量冲击,并且还能细粒度控制。原创 2025-04-28 07:12:23 · 1186 阅读 · 0 评论 -
秒杀压测计划 + Kafka 分区设计参考
✅ 秒杀压测计划 + Kafka 分区设计参考类别关键做法流量入口防护Nginx 限流 + 接口限流 + Redis限流原子扣库存Redis Lua 脚本一次性完成判断+扣减异步下单Kafka 分区异步队列幂等控制订单表唯一索引 or Redis setnx超时取消Redis key expire + 定时任务监控与告警Kafka Lag、消费者异常率、DLQ 消息可扩展性Kafka 多分区,多消费组实例。原创 2025-04-27 15:12:49 · 1221 阅读 · 0 评论 -
NestJS + Kafka 秒杀系统完整实践总结
⚡NestJS + Kafka 秒杀系统完整实践总结。原创 2025-04-27 14:15:52 · 1259 阅读 · 0 评论 -
Kafka + Kafka-UI
✅ 使用不需要 Zookeeper 的 Kafka—— 那就是Kafka KRaft 模式从 Kafka 2.8+ 起官方支持,3.3+ 开始默认推荐。去掉 zookeeper 依赖简化部署,性能更高更符合现在 Kafka 的新一代标准架构。原创 2025-04-26 06:42:38 · 2366 阅读 · 0 评论 -
NestJS 中集成 Kafka 实现秒杀流程异步处理的代码解析
Redis 扣库存 + Kafka 异步下单✅ 三、生产者(Producer)逻辑 —— 异步发送下单消息在 中:✅ 四、消费者(Consumer)处理订单入库在 中:原创 2025-04-25 18:20:25 · 503 阅读 · 0 评论 -
Redis 原子操作
如何判断某个操作是原子性 or 非原子性”,这是所有后端工程师必须理解清楚的高并发设计核心问题。原子性(Atomicity)指的是一个操作要么全部完成、要么完全不做,不存在中间状态。✔️ 不可分割、不可被并发干扰。原创 2025-04-25 18:15:42 · 991 阅读 · 0 评论 -
Nest集成健康检查
健康检查(Health Check)是服务治理的基础能力,主要用于让运维平台、K8s、负载均衡、监控系统等自动探测你的服务是否健康可用,并在服务异常时自动重启、摘除或告警。核心思路暴露一个健康检查接口(如 /health、/actuator/health),外部系统定时访问。接口返回服务健康状态(如 200 OK + 简明 JSON)。检查内容可扩展:不仅仅是进程存活,还可以检测数据库、缓存、外部依赖、磁盘空间等。在NestJS 项目中,健康检查(Health Check)模块。原创 2025-04-24 18:08:14 · 440 阅读 · 0 评论 -
NestJS 统一异常处理 + 日志追踪链路设计
我们来系统性分析NestJS 统一异常处理 + 日志追踪链路设计目标实现❗ 异常统一结构全局@Catch()Filter + HttpException 规范🔗 Trace ID中间件生成 UUID,挂载 req.headers / req.traceId🧾 日志打点在 controller / service / errorFilter / middleware 处打印📘 错误码管理code => message 映射表,推荐配置表 + i18n🔍 安全性不暴露栈信息、脱敏字段过滤。原创 2025-04-24 16:04:32 · 1400 阅读 · 0 评论 -
JWT的token泄露要如何应对
涉及到实际线上安全应急策略。在处理JWT Token 泄露事件时的标准应对方案,分为【预防】和【应急响应】两部分讲解。类型推荐做法储存✅ 放 HttpOnly Cookie,而不是 localStorage加密✅ 使用 RS256,私钥签名,公钥验证续签✅ 实现 refresh_token 机制,支持滑动续期风控✅ 实现黑名单、IP+设备检测、异地登录风控运维✅ 支持密钥轮换、封禁通知、日志追溯基于 NestJS 实现 Refresh Token + 黑名单机制的方案。原创 2025-04-23 18:27:19 · 2310 阅读 · 0 评论 -
彩虹表攻击与Nest密码存储
彩虹表攻击(Rainbow Table Attack)彩虹表攻击是一种基于预计算哈希值反查密码攻击者先构建一个表格:记录常见密码及其哈希值(如 MD5/SHA1);获取某网站数据库中的用户密码哈希值;在彩虹表中查找匹配的哈希值,反推出原始密码。做法是否推荐说明明文存密码❌ 绝对禁止泄露即全部破防MD5/SHA1❌ 不推荐无加盐太容易被破解哈希 + Salt✅ 推荐每个用户不同结果,防彩虹表✅ 推荐更安全的现代密码哈希方法。原创 2025-04-23 17:13:13 · 1134 阅读 · 0 评论 -
Prisma JSON存储扩展性
Prisma 对数据库字段是JSON类型时,会自动映射成 JavaScript/TypeScript 中的object或arraydata: {profile: {age: 30,},},});// 30操作类型是否推荐 Prisma + Json插入/更新✅ 非常方便查询展示✅ 轻松解析、结构灵活查询过滤❌ 建议结构化字段,或者写原生 SQL如你后续需要 JSON 查询能力更强的 ORM(比如支持 json path 查询),可以考虑或原生 SQL。原创 2025-04-23 16:42:17 · 1291 阅读 · 0 评论 -
Nest防重放方案
在 NestJS 架构中,实现防重放攻击(Replay Attack)是保护接口安全、提升风控能力的关键环节,尤其是在支付、订单、登录、敏感操作等场景中。高并发分布式架构严格性能需求这些场景中,Redis 的高效能、分布式特性、TTL 特性完美满足需求,几乎是大厂实施防重放机制的最佳实践标准。这也是为什么防重放方案普遍选用Redis的原因。原创 2025-04-22 15:58:02 · 1001 阅读 · 0 评论 -
Nest的限流方案
多维度限流(如 IP、用户 ID、接口级别、请求类型)可配置化(支持不同环境和接口动态配置)可观测性(接入日志、监控系统)高性能和分布式支持(Redis 限流器)与鉴权鉴权链路集成(结合 JWT、API Token)以下是一个“标准// 优先按用户ID限流,否则按IP在main.ts维度建议限流存储推荐 Redis 支持多实例限流 Key 设计支持 IP + 用户ID + 路由等多种维度限流策略精细化配置,接口粒度调整异常处理自定义响应体、日志告警观测性。原创 2025-04-22 14:56:31 · 986 阅读 · 0 评论 -
NestJS-Knife4j
是一个集成Knife4j(一个增强版的 Swagger)功能的 NestJS 插件。Knife4j 是 Swagger 的增强版,提供了更丰富的功能,优化了 UI 和接口文档的展示效果,增强了开发人员和 API 使用者的交互体验。对于已经在使用 Swagger 的项目,Knife4j 提供了一些额外的优点和增强功能。Knife4j是一个基于 Swagger 的前端 UI 工具,旨在通过增强 Swagger 的功能来优化接口文档的用户体验。UI 优化:提供了更加友好和直观的接口文档界面。增强的文档交互。原创 2025-04-21 17:54:00 · 1235 阅读 · 0 评论 -
基于 Nest CLI搭建框架
在使用 Nest.js 开发时,**Nest CLI(命令行工具)**是标准化开发流程的重要组成部分。项目推荐做法环境变量使用配置加载使用模块集中管理类型安全使用Joi校验 env 参数配置访问使用提供配置解耦多环境支持自动切换。原创 2025-04-21 17:20:59 · 850 阅读 · 0 评论 -
AI帮你把关项目架构(Nest)
我这个项目 在软件架构,系统架构,数据架构,网络架构,安全架构,其他等 都有什么具体的体现。有什么不足。原创 2025-04-20 15:58:21 · 1163 阅读 · 0 评论 -
pnpm解决幽灵依赖问题
有。npm(包括 v9)和 yarn(classic/berry)默认依然采用“扁平化 node_modules”结构。只要依赖被扁平化安装到顶层 node_modules,项目代码就可以直接 require/导入未在本项目 package.json 声明的依赖(即幽灵依赖)。只要依赖树发生变化(比如间接依赖被移除),你的代码就会因为找不到依赖而报错。pnpm 通过“符号链接+隔离”机制,保证每个包只能访问自己声明的依赖,彻底杜绝了幽灵依赖。原创 2025-04-18 18:27:44 · 1762 阅读 · 0 评论 -
幽灵依赖与常见依赖管理
实际项目中发现和修复幽灵依赖问题,并给出常见依赖管理的好习惯。Monorepo 下建议在根目录统一管理公共依赖,子包用 peerDependencies 声明兼容范围。避免各子包声明不同版本的同一依赖,否则会出现冲突和幽灵依赖等问题。定期用npm ls或yarn why检查依赖树,确保依赖一致性。原创 2025-04-18 17:50:22 · 1042 阅读 · 0 评论 -
npx 的作用以及延伸知识(.bin目录,npm run xx 执行)
在终端执行 lerna run build 时出现了的错误。这说明当前环境下找不到 lerna 命令那么为什么会自动使用本地下的 lerna,以及其原理。npx让你无需全局安装 lerna,也不用关心 PATH 配置,直接用本地依赖的 lerna。这样做可以保证团队协作时每个人用的 lerna 版本一致,避免“在我电脑上没问题”的情况。下面一步步详细讲解 npm/yarn 的.bin机制和 npx 的底层实现原理。是 npm/yarn 自动生成的可执行文件目录,方便你直接运行依赖包的命令行工具。原创 2025-04-18 15:32:10 · 1989 阅读 · 0 评论 -
Nest.js 后端生态系统中常见的技术栈组合
Nest.js 是一个基于 TypeScript 的 Node.js 框架,它提供了一个高度可维护且易于扩展的架构来构建高效、可靠的服务器端应用程序。Nest.js 非常适合构建微服务架构,并且可以轻松地与其他技术和工具集成。原创 2024-08-12 23:21:12 · 1132 阅读 · 0 评论 -
Node.js 根据表结构动态生成目标代码
在现代的前端开发中,使用 Vue3 搭配 Element Plus 进行组件化开发已经成为一种常见的实践。最近,我在一个项目中需要根据数据库表结构动态生成表格代码,这让我经历了一次从 MySQL 到 SQL Server 的旅程,并学习了如何使用 ejs 模版引擎来生成代码。在这篇博客中,我将介绍如何使用 mysql2/promise 和 mssql 库连接数据库,以及如何利用 ejs 动态生成代码。原创 2024-08-02 19:23:31 · 643 阅读 · 0 评论
分享