- 博客(93)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 NestJS 从入门到企业级实战(四):参数校验 + Swagger 接口文档 + ESM 踩坑
参数校验:用实现,DTO 中用装饰器定义规则。DTO:数据传输对象,定义接口参数的结构和校验规则。Swagger:自动生成接口文档,用@ApiTags()等装饰器描述接口。ESM 踩坑v8+ 与 CJS 不兼容,推荐降级到 v7。一句话总结:参数校验保证数据干净,Swagger 保证前后端对接顺畅,两者都是企业级项目的标配。
2026-08-29 14:31:13
274
原创 NestJS 从入门到企业级实战(三):装饰器入门 + 全局异常过滤器 + 全局响应拦截器
●装饰器:用@xxx语法给类、方法、属性"加功能",是 NestJS 的核心语法。●统一响应格式:所有接口返回,前端对接更简单。●全局响应拦截器:自动把正常返回值包装成统一格式。●全局异常过滤器:自动把异常转换成统一格式。●注册方式:在main.ts中用和注册。一句话总结:拦截器管"正常返回",过滤器管"异常返回",两者配合实现全局统一响应格式。下一篇预告:参数校验(class-validator)+ Swagger 接口文档,完成第一阶段的企业级 Todo 接口。
2026-08-29 14:24:22
257
原创 NestJS 从入门到企业级实战(二):依赖注入(DI)深度拆解
依赖:A 需要用 B,A 就依赖 B。依赖注入:你不用自己newB,框架帮你创建好 B,直接塞给 A。DI 容器:幕后的大管家,负责注册、创建、注入所有被管理的对象。:告诉容器"这个类可以被管理"。:告诉容器"请帮我管理这个类"。构造函数注入:声明"我需要什么",容器自动塞进来。默认单例:整个应用只有一个实例,全局共享。一句话总结:DI 就是"你只管声明要什么,框架帮你搞定一切"。
2026-08-29 14:17:17
335
原创 NestJS 从入门到企业级实战(一):环境搭建与项目结构全解析
打开@Get()// 新增:GET /userreturn {name: '张三',age: 25,role: '前端工程师',保存后,start:dev会自动热重载。打开浏览器访问"name": "张三","age": 25,"role": "前端工程师"恭喜,你的第一个后端接口写完了。NestJS 是一个 TypeScript 后端框架,架构清晰,适合企业级开发。main.ts(入口)、(模块)、(控制器)、(服务)。
2026-08-29 14:11:13
371
原创 告别 `any` 工程师:一份写给前端人的 TypeScript 进阶指南
《TypeScript实战指南:从入门到优雅编码》 摘要:本文针对前端开发者对TypeScript的常见困惑,通过四个层次系统讲解TS核心用法:1)基础类型与类型推断,强调契约精神与联合类型;2)对象建模的Interface与Type区别;3)泛型编程实现类型参数化;4)工程化进阶技巧包括戒掉any、工具类型应用和性能优化。文章指出TS的核心价值在于提供编译时安全防护和智能提示,建议开发者通过严格模式和实践逐步掌握类型系统,最终实现从被动接受到主动享受的类型驱动开发体验。关键要诀:简单场景靠推断,复杂逻辑用
2026-08-20 15:39:21
354
原创 60000px超宽巨图网页预览终极方案:从Canvas崩溃到OpenSeadragon瓦片落地全流程
本文针对网页端预览超长巨图(如6.3万像素宽)的技术难题,提出完整解决方案。通过分析传统Canvas/WebGL方案内存溢出、渲染失效等致命缺陷,转向DZI瓦片技术。文章详解了图像金字塔原理、Python+libvips切片流程,并给出Vue项目集成OpenSeadragon的完整实现代码。方案成功实现2.3亿像素图片的无损预览,支持缩放/旋转等交互,内存占用极低。关键经验包括:版本锁定libvips8.14.1、静态资源规范部署、组件生命周期管理等。该方案可直接扩展为云端异步切片的企业级应用架构。
2026-08-20 15:30:50
434
原创 企业级 RAG 概念篇:切块(Chunking)、 翻译(Embedding)和向量数据库、混合检索与 Rerank 重排序、权限前置与性能优化
本文系统介绍了企业级RAG(检索增强生成)系统的核心技术架构,重点阐述了文本分块(Chunking)、语义嵌入(Embedding)、混合检索与重排序(Rerank)等关键环节的实现策略。文章通过前端开发类比,深入浅出地讲解了递归语义切块、父子索引等分块技术,以及BGE-M3嵌入模型和Milvus向量数据库的选型建议。特别强调了企业应用中必须注意的权限前置过滤、语义缓存和流式输出等安全与性能优化方案,最终形成包含切块、翻译、检索、精排、生成五步走的完整RAG解决方案
2026-08-19 14:14:15
419
原创 Vite 环境变量终极指南:从原理到企业级实战
本文深入解析Vite环境变量的核心机制与应用实践。主要内容包括:1)Vite内置dotenv机制,通过VITE_前缀区分前后端变量;2)文件加载采用"基础+模式"策略,支持自定义环境配置;3)提出生产环境动态部署方案:使用相对路径+Nginx反向代理实现"一次打包,到处运行";4)区分客户端(import.meta.env)和服务端(loadEnv)两种运行环境;5)提供企业级项目标准配置模板,包含接口通信、调试开关等必备变量;6)分享动态网页标题等进阶实践。文章强调
2026-08-05 11:53:09
342
原创 一次血案:我用 ECharts 滑块滑动,把浏览器内存干到 1.5G,真凶却不是 ECharts
你有没有过这种经历:一个图表频繁滑动、切换、刷新,页面越来越卡,内存一路狂飙,关都关不住。你以为是图表库烂、是渲染层不行、是底层缓存不释放。你优化了一遍又一遍,换库、改配置、销毁实例、清理 dom…… 全都没用。直到最后你才发现:杀人真凶,根本不是绘图库,而是你写的一行最不起眼、最 “正常” 的代码。这篇文章,我把我踩过的坑、流过的泪、排查到凌晨的真相,一次性写透。希望你永远不要经历我经历的绝望。我做的是一个实时曲线图表:现象:我第一反应:肯定是 ECharts 内存泄漏!我坚信:是 ECharts 没有销
2026-04-07 18:11:01
414
原创 前端可视化第一章:PixiJS入门指南
PixiJS作为高性能2D渲染引擎,相比传统DOM渲染方案(5-10fps)、Canvas2D方案(15-25fps)和Three.js等3D方案,在10万元素渲染场景下能达到接近60fps的帧率。其核心优势在于WebGL硬件加速、优化的渲染管线设计以及场景图管理机制。特别适用于需要处理海量动态元素(如数据可视化、游戏等)的场景。通过资源预加载、对象池复用、GPU加速等技术手段,PixiJS能实现传统前端技术难以达到的渲染性能,同时保持灵活的定制能力。
2025-09-25 14:45:57
935
原创 基于nodejs的提效神器:快速进入开发模式
本文介绍了一个基于Node.js开发的智能启动脚本工具,旨在解决前端开发者日常工作中的重复操作痛点。该工具通过交互式命令行界面,实现了开发环境快速切换、AI工具智能启动和浏览器一键打开等功能。核心特点包括:动态扫描项目目录自动生成选项列表、处理带空格的复杂路径、使用现代ES模块编写。一个命令即可完成原本需要多次切换的手动操作,显著提升开发效率。技术栈选用Node.js 22.14.0和@inquirer/prompts 7.8.6,提供了稳定可靠的交互体验。
2025-09-25 14:16:14
248
原创 Vue Scoped样式:当动态元素成为“无家可归“的孤儿
在Vue的scoped样式世界中,动态元素就像城市里的流浪猫——你需要特别关照它们,否则它们会翻你的垃圾桶(破坏你的布局)。记住:好的CSS策略就像好的城市规划——需要分区(scoped),但也需要公共空间(全局样式)和特殊通道(深度选择器)。下次当你的动态元素拒绝穿你给的衣服时,不要生气——它们只是需要一张VIP通行证!
2025-07-23 16:26:24
459
原创 解决 Electron 中 window.open 打开新窗口的各种“坑”
摘要:本文探讨Electron中使用window.open()时常见问题及解决方案。主要问题包括新窗口白屏、意外打开多窗口及关闭死循环。解决方法包括在主进程配置webContents.setWindowOpenHandler()、返回{action:'deny'}避免重复窗口,以及在close事件中正确处理监听器移除。文章提供了具体代码示例,帮助开发者正确实现窗口功能,避免常见陷阱,提升Electron应用开发体验。
2025-07-23 16:21:20
1505
原创 Electron驯龙记:在Win7的废墟上唤醒32位DLL古老巨龙
《32位DLL与Electron的跨时空对话:U盾迁移历险记》 摘要:本文记录了将32位U盾控件从NW.js迁移到Electron14的技术探索。作者先尝试传统FFI方案,遭遇Python2.7依赖、ABI兼容性等难题后,转而采用无需编译的koffi库。通过精准控制Node.js14.7.0与Electron14.1.0的版本组合,在SysWOW64路径下成功加载32位DLL,并详细剖析了内存对齐、结构体偏移量处理等核心问题。最终实现方案包含设备枚举、句柄管理、随机数生成等关键步骤,以Promisify方式
2025-05-27 15:14:47
1073
原创 Electron 桌面程序读取dll动态库
本文介绍了Electron跨平台开发中的关键实践,包括:1)解决国内GFW导致的npm安装问题;2)构建配置优化,实现资源文件打包和32位Windows支持;3)通过preload.js建立安全的主进程-渲染进程通信机制;4)使用koffi库调用硬件加密狗DLL进行设备验证。文章详细展示了进程通信、DLL调用、U盾检测等核心代码实现,同时也坦承项目因时间压力存在临时解决方案和技术债务,呼吁同行指正改进。该实践涵盖了Electron开发中的典型挑战和解决方案。
2025-05-27 15:14:20
831
原创 Express中间件(Middleware)详解:从零开始掌握(4)
下面我将为你提供四个实战项目的完整实现代码,每个项目都展示了Express中间件的实际应用场景。
2025-04-11 11:07:22
498
原创 Express中间件(Middleware)详解:从零开始掌握(2)
【代码】Express中间件(Middleware)详解:从零开始掌握(2)
2025-04-11 10:54:16
701
原创 process.hrtime 是什么
process.hrtime() 是 Node.js 中的一个内置方法,用于获取高精度的时间测量值。它返回一个数组 [秒, 纳秒],可以用来精确地计算时间间隔(如性能测试、基准测试等)。与 Date.now() 或 console.time() 不同,process.hrtime() 提供了更高精度的时间测量,并且不会受到系统时钟调整的影响。
2025-04-11 10:40:08
970
原创 Express中间件(Middleware)详解:从零开始掌握(1)
中间件是能够访问请求对象(req)、响应对象(res)和下一个中间件函数(next)的函数。
2025-04-11 10:23:06
1132
原创 electron客户端远程手动更新
客户端安装以后,一般来说都有个检查更新的按钮。一点击,就会自动去服务器上拉取最新版本的安装包,然后自动下载安装。本文大概记录一下主要步骤、代码。
2025-04-03 17:19:26
645
原创 electron 客户端 windows linux(麒麟V10)多系统离线打包 最新版 <二>
这节主要讲解以下 linux系统(国产麒麟)下,electron如何配置打包。
2024-09-06 17:58:17
2461
原创 Electron内调用网页出现 $ is not defined 或者 jQuery is not defined
解决electron引用第三方网页出现undefined的报错
2024-03-13 09:42:15
1482
1
原创 vue 实现在线预览Excel-LuckyExcel/LuckySheet实现方案
由于后台给到的数据,就是二进制数据。因为他们导出和预览实际上用的是同一个接口。那么,我们需要将二进制数据解析为文件对象,通过luckyexcel的方法转变为json对象,然后通过luckysheet显示出来。:引入luckysheet,只能通过CDN或者直接引入静态资源的形式,不能npm install。个人建议直接下载资源引入。如上两步,就可以显示项目预览excel的需求了。:自行整理下路径,不要错了。
2023-11-06 16:48:34
4040
原创 nodejs调取exe执行文件连接websocket
使用nodejs,electron读取并执行客户端应用安装目录下的exe文件(exe文件是一个websocket服务)
2023-07-18 09:07:37
1008
原创 vue Electron ArcGis 桌面应用 Sqllite3 node-grp:老旧项目的起死回生
vue2+electron+sqllite3+node-gyp。看到这个技术栈,基本可以知道感知这个项目的关键词:vue、Gis地图、本地数据库、桌面客户端。顿时深感亚历山大。不多说,开干。
2023-06-09 11:28:43
1677
1
原创 vue openlayer GisMap QGis 点击交互 MultiLineString 样式高亮
Gis Geoserver Openlayer ImageWMS 点击选中要素以及高亮效果
2023-04-24 11:06:11
854
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅