- 博客(160)
- 收藏
- 关注
原创 压缩node_modules放入另一台电脑执行,结果启动不起来?
日常开发:私有镜像 + 缓存同步紧急修复:TGZ单包部署灾备方案:全量缓存冷备依赖变更审批流程镜像同步时间窗口安全扫描集成方案应急响应手册通过系统化的依赖管理策略,让离线环境开发从被动应对转为主动防御,保障研发流程的持续交付能力。
2025-03-31 18:51:00
247
原创 RabbitMQ 与 Kafka:消息中间件的终极对比与选型指南
在分布式系统架构中,消息中间件是异步通信的核心组件。RabbitMQ 和 Kafka 作为两大主流技术,常被开发者拿来比较。本文深入解析两者的设计哲学、性能差异和典型场景,助你做出精准技术选型。
2025-03-20 09:14:20
1270
原创 使用 Node.js 从零搭建 Kafka 生产消费系统
本文将以 Node.js 为例,从基础概念到代码实战,手把手教你实现 Kafka 的生产者与消费者。通过 `kafkajs`,Node.js 可快速集成 Kafka 实现高可靠的消息处理。:消息的分类(如 `userlogs`),生产者发送到 Topic,消费者订阅 Topic。- 例如:将 `userlogs` 分为 3 个分区,可同时由 3 个消费者处理。:生产者配置 `acks: 0` 时,不等待 Broker 确认。:消费者处理消息后崩溃,导致 Offset 未提交。
2025-03-20 09:07:06
841
原创 使用Nginx实现后端负载均衡
http {# 默认轮询策略# 权重配置# 备用服务器通过合理配置Nginx负载均衡,开发者可以轻松构建出支撑百万级并发的高可用架构。本文涵盖从基础配置到生产级优化的全链路实践,建议根据实际业务特点选择合适的策略。最后切记:所有关键配置变更前务必做好备份,并通过`nginx -t`严格验证!ab -n 1000 -c 100 http://example.com/ # 压力测试curl -I http://example.com # 查看响应头。
2025-03-19 09:34:43
1262
原创 Node.js 中使用 RabbitMQ
RabbitMQ是一个基于 AMQP 协议的开源消息代理工具,专为分布式系统设计。它通过解耦生产者和消费者实现异步通信,支持流量削峰、任务队列、服务解耦等场景,是微服务架构中的核心组件之一。其核心优势包括:•可靠性:支持消息持久化与传输确认机制。•灵活性:提供多种交换机类型(Direct、Fanout、Topic等)。•跨平台:支持主流编程语言(Node.js、Python、Java等)。通过 RabbitMQ,Node.js 应用可以实现:•异步任务处理(如邮件发送、文件导出)•服务解耦。
2025-03-19 09:10:09
1354
原创 MySQL数据高效同步到Elasticsearch的四大方案
Elasticsearch(ES)凭借其强大的全文搜索和实时分析能力,已成为现代应用的核心组件。通过本文的代码示例和架构解析,您可快速构建适合自身业务的MySQL到ES同步管道。•安装MySQL驱动到Logstash的`/logstash-core/lib/jars/`,涵盖从简单双写到生产级实时同步的全场景,并提供可落地的代码实现。:ES支持分词、模糊匹配,弥补MySQL LIKE查询性能差的缺陷。:在业务代码中同步写入MySQL和ES,适合初创项目快速验证。•业务侵入性强,需维护两套数据模型。
2025-03-18 14:33:19
961
原创 Node.js中使用Elasticsearch
Elasticsearch作为领先的分布式搜索分析引擎,与Node.js的结合能为应用提供强大的实时搜索和数据分析能力。本文将带你完成从环境搭建到高级查询的全流程实践。
2025-03-18 14:06:05
667
原创 SVN完全指南
Apache Subversion(SVN)作为经典的集中式版本控制系统,在企业级代码管理、文档版本跟踪等领域持续发挥着重要作用。本文将带您系统掌握SVN的核心概念和实用技巧,并提供从安装配置到高级操作的完整解决方案。1. `svn update` 触发冲突提示。3. 手动编辑带有`>>>>`标记的文件。•IntelliJ IDEA内置对比工具。•VS Code的SVN插件。2. 使用比对工具分析差异。
2025-03-18 12:03:03
1046
原创 JavaScript 异步编程的终极指南:Promise 与 async/await 深度对比
✅•需要精细控制并行/竞速逻辑•开发基础工具库•兼容旧版浏览器(通过 polyfill)✅•处理复杂业务逻辑流•需要更好的可维护性•使用现代构建工具链在 async 函数内部使用 await 处理具体异步操作,在顶层用 Promise 控制整体流程。
2025-03-18 11:49:30
571
原创 一篇讲清均衡负载,不明白的前端、后端同学都进来看看
到多个服务器或资源的机制,目的是优化资源使用、提升系统性能和可靠性。Nginx根据路径将API请求分发到不同的后端服务组(如订单服务、用户服务)。位于用户请求入口层,负责将客户端(如浏览器、移动设备)的请求分发到不同的。:根据预设策略(如轮询、权重、哈希等),将用户请求分发到多个服务器节点。:在微服务架构中实现细粒度流量控制(如A/B测试、金丝雀发布)。:构建分层、弹性的分布式系统,应对从单机到百万级并发的平滑演进。静态资源分发(HTML/CSS/JS、图片、视频)。
2025-03-18 10:39:06
927
原创 Nestjs如何抗住高并发?
NestJS 是一个用于构建高效、可扩展 Node.js 服务器端应用的框架,它结合了面向对象编程(OOP)、函数式编程(FP)和函数式响应式编程(FRP)的理念,并深度集成了 TypeScript。其核心设计灵感来源于 Angular 的模块化架构和 Spring 的依赖注入机制,旨在为 Node.js 开发提供一种结构化、企业级的解决方案。Node.js 事件循环机制:利用其单线程异步非阻塞特性,避免因同步 I/O 或 CPU 密集型任务阻塞主线程。代码优化:避免 误用导致不必要的阻塞。使用 提供的
2025-03-18 10:29:33
1380
原创 React使用路由表
React Router 从 v6 版本开始支持类似 Vue 的集中式路由表配置方式,通过useRoutesHook 可以将路由配置统一管理。这种方式相比传统的 JSX 声明式路由更加简洁,特别适合中大型项目。通过使用useRoutes+ 集中式路由表的方式,React 也可以实现类似 Vue Router 的路由配置体验。这种方式特别适合需要统一管理路由逻辑的项目,开发者可以根据项目需求灵活选择传统声明式或集中式配置方案。
2025-03-14 10:42:27
574
原创 微前端解决方案之MicroApp
大家可能还是不认识微前端或者它的好处,下面我介绍微前端以及它的好处。微前端的概念是由ThoughtWorks在2016年提出的,它借鉴了微服务的架构理念,核心在于将一个庞大的前端应用拆分成多个独立灵活的小型应用,每个应用都可以独立开发、独立运行、独立部署,再将这些小型应用融合为一个完整的应用,或者将原本运行已久、没有关联的几个应用融合为一个应用。微前端既可以将多个项目融合为一,又可以减少项目之间的耦合,提升项目扩展性,相比一整块的前端仓库,微前端架构下的前端仓库倾向于更小更灵活。micro-app是借鉴了。
2025-03-14 10:26:24
969
原创 Vue3中全局使用Sass变量方法
1.首先需要在自己的静态资源目录下,放入两个sass文件。需要注意的是 .d 文件,是用来在开发的时候给予提示用的。到这里,你的任何.vue文件中的style中都能直接使用 vw、vh方法了。
2025-03-13 14:01:10
370
原创 RawShaderMaterial 与 ShaderMaterial
在 Three.js 中,和都是用于自定义着色器的材质类,但它们的核心区别在于。
2025-02-24 15:27:35
577
原创 将Javascript打包成exe可执行文件
是一个命令行工具,能将 Node.js 项目及其依赖打包成一个单独的可执行文件。用户无需安装 Node.js 环境即可运行你的程序。(macOS/Linux)可直接运行,无需 Node.js 环境。表示 Node.js 18 + Windows 64位)。可轻松将 Node.js 项目转换为可执行文件。: 指定目标平台和 Node.js 版本(例如。注意处理静态资源路径和动态模块加载。中预声明所有可能动态加载的文件。macOS (生成二进制文件)Linux (生成二进制文件):打包后文件系统路径变化。
2025-02-19 10:12:29
739
原创 Puppeteer.js 一个可以不动手操作浏览的插件
Puppeteer是一个由 Google Chrome 团队开发的 Node.js 库,提供了一套高级 API 来控制无头(Headless)或非无头的 Chrome/Chromium 浏览器。它支持自动化操作,如网页截图、PDF 生成、表单提交、页面导航、JavaScript 执行、网络请求拦截等,常用于爬虫、自动化测试、性能监控等场景。});console.log('页面标题:', title);Puppeteer 是前端自动化的瑞士军刀,覆盖了从简单截图到复杂交互的全场景。
2025-02-19 09:21:08
768
原创 什么?你的Nestjs项目部署的时候还要把node_module带上去?
最近跟一个小伙伴聊天,他说他部署Nestjs项目的时候,每次都要把 package.json带上去然后使用npm 把依赖安装一次,才能运行项目。然后我也是给了小伙伴解决方案。
2025-02-17 17:15:57
194
原创 前端 安全
前端允许用户输入 URL 发起服务端请求(如图片裁剪、PDF 生成),攻击者利用此访问内网资源。:攻击者通过透明 iframe 覆盖页面,诱导用户点击隐藏按钮(如授权按钮)。:攻击者构造恶意 URL,用户点击后,服务端将恶意参数直接返回并执行。:恶意脚本被存储到服务端(如数据库),其他用户访问时触发。:攻击者利用网站未验证的重定向参数,将用户引导至恶意网站。,该内容被保存到数据库。
2025-02-13 14:26:31
1336
原创 一篇讲清HTTP缓存
HTTP 缓存是一种通过存储资源的副本,在后续请求中快速响应的技术,旨在提升网站性能、减少服务器负载并节省带宽。:重复访问时直接从本地或就近缓存获取资源,无需重新下载。:减少数据传输量,尤其对移动用户和按流量计费的环境重要。(HTTP/1.0):指定资源的绝对过期时间(如。解决:使用指纹(如文件哈希)或版本号修改 URL。缺点:精度为秒,若资源频繁修改可能不准确。:CDN、网关等中间服务器上的缓存。:仅浏览器可缓存(如用户隐私数据)。:减少重复请求对服务器的直接访问。:存储在用户本地(如磁盘或内存)。
2025-02-13 10:34:05
807
原创 一篇彻底讲清浏览器同源策略
两个 URL 的协议(Protocol)、域名(Domain)、端口(Port)三者完全相同,才属于同源。示例与同源与不同源(协议不同)与不同源(域名不同)与不同源(端口不同)合理设计跨源请求方案(如选择 CORS 或代理)。避免因安全限制导致的代码异常(如 iframe 通信问题)。与后端协作配置正确的 HTTP 头,确保生产环境跨源功能正常。通过灵活运用跨源技术,既能保障安全,又能实现丰富的跨源功能需求。
2025-02-13 10:23:39
622
原创 本地部署DeepSeek Nodejs版
然后选择自己对应配置的模型,在复制右侧指令到cmd窗口,就可以把模型下载到本地了。如果显示了版本号,则代表已经下载成功了。
2025-02-11 00:15:09
2431
2
原创 ModuleJS 与 CommonJS 混用的两种解决方案
使用构建工具,webpack、vite等系列构建工具。这些构建工具底层则会将两种不同的系统模块语言转为同一种语言,然后代码也能正常执行。如果你可以修改文件的文件后缀,那么就不需要借助任何第三方工具,直接这样做即可。
2025-02-10 23:34:55
294
原创 ollama 基本使用教程
创建一个ModelfileFROM llama2 # 基础模型SYSTEM """你是一个友好的助手,用中文回答。"""PARAMETER temperature 0.7 # 控制生成随机性(0-1)
2025-02-10 22:47:32
2401
原创 electron-vite 构建后路由失效问题
很明显他判断了环境,如果是开发环境访问的则是url,如果是构建环境则是按照文件路径去找的。因此,当我们在新开页面的时候,也是需要写两种跳转的,一种是开发阶段的跳转,一种则是构建时候的跳转。这个问题大概是这样的:使用 electron-vite 构建的应用,开发时候,用路由的窗口能正常显示,而打包后无法访问。然后还有一些注意事项:就比如无论你使用的是vue还是react路由模式只能使用hash模式。(看到这里你应该就知道问题所在了)
2025-02-10 17:00:10
539
原创 一篇讲清JS事件循环
微任务优先级高于宏任务:每执行一个宏任务后,必须清空微任务队列。避免阻塞:长时间同步代码或无限微任务会阻塞事件循环。合理使用任务队列:根据场景选择微任务(优先执行)或宏任务(如渲染后操作)。理解事件循环,可以更好地控制异步代码的执行顺序,避免常见陷阱(如界面卡顿、逻辑错误)。
2025-02-08 11:55:16
279
原创 electron-vite exe引导安装
注意:这是一篇关于electron-vite 相关的内容。不知道electron-vite是什么的,可以看我的博客。那么我就长话短说,大家直接找到这个目录文件。然后插入一下代码即可。
2025-02-05 10:15:00
258
原创 前端开发人员又又又爽了
随着人工智能的发展,各行各业都开始收到一定的冲击,那么我们开发领域也是一样,那么如何想要继续混饭吃,当然要体现自己的价值。由于我自己是一名前端开发人员,所以也是在研究怎么苟住。此插件非前端项目里面的差劲又或是编译软件里面的插件。而是UI设计的一个插件。长话短说CodeFun可以通过原型生成项目。
2025-01-20 11:58:05
308
原创 electron-vite 你太优秀了
今天给大家推荐一个非常好用的electron构建工具,他是基于vite构建的一个工具,基本上把开发一系列需要的事情,都帮大家做好了。大家只需要像,写网页一样,就能制作出完美的桌面程序出来。下面我来说说他的基本使用。
2025-01-20 10:17:23
808
原创 鸿蒙开发国际化配置
最近在写一鸿蒙项目,对方需求是实现完美的国际化切换。但是大家都知道吧,实现完美的国际化配置,那肯定是语言不能太多,不然难以开发和维护。再我的努力争取下,对方最后要求只需要三国的语言,分别是:中文、英文、韩文。下面我将通过一个demo,来告诉大家如何实现。界面比较干净,一个用来设置语言,一个用来获取系统语言。
2024-12-18 10:37:27
336
原创 Nestjs请求传Number类型数据老是被拦截
最近用Nestjs写后端,遇到一个问题,那就是请求参数莫名其妙被拦截。仔细一看才发现自己传递的参数是String类型,而接收的又必须是Number类型。那怎么样传递String类型的自动转化为Number类型呢?带着这个疑问我去了校验库 class-validator 的文档里面查找了一个解决办法,那就是使用装饰器IsNumberString。IsNumber: 验证值是否为number类型。: 验证值是否为string类型,并且该字符串可以被解析为数字。
2024-12-13 10:31:22
216
原创 前端自己也能开启HTTPS
今天我发现了一个宝藏,兄弟们!就是前端开发阶段是可以使用https来开发的。对不懂前端的后端兄弟来说,这不就是个通讯协议吗?有什么可骄傲的。咳咳,那自己咱村里人才知道,HTTPS能给前端带来多少便利。例如,在开发阶段前端项目需要跨设备获取一定的权限,这个时候浏览器要求某些能力需要是https的情况下才能使用,比如获取摄像头画面,获取当前地理位置等。如果有些前端兄弟还不知道如何开始https进行开发,那开发体验一定不好吧。我就废话少说了,下面给大家演示如何开启https,这里以vite 构建的项目为例。
2024-12-12 10:59:41
1032
1
原创 还在使用定时器吗?试试requestAnimationFrame
方法会告诉浏览器你希望执行一个动画。它要求浏览器在下一次重绘之前,调用用户提供的回调函数。对回调函数的调用频率通常与显示器的刷新率相匹配。虽然 75hz、120hz 和 144hz 也被广泛使用,但是最常见的刷新率还是 60hz(每秒 60 个周期/帧)。为了提高性能和电池寿命,大多数浏览器都会暂停在后台选项卡或者隐藏的中运行的。MDN对requestAnimationFrame的介绍但是我认为,大家认识requestAnimationFrame很多人都是通过 Three.js 的。
2024-12-12 09:15:05
983
vue中watch监听props数据问题
2023-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人