- 博客(117)
- 收藏
- 关注
原创 electron打包是没有正确生成electron.exe,x ENOENT: no such file or directory, rename:
electron打包是没有正确生成electron.exe,x ENOENT: no such file or directory, rename: 的三种情况。
2025-04-20 21:17:15
246
原创 面试题总结
1、实现Promise.all 2、版本号比较 3、打印N 4、js中定义变量不写,let, var, const 会自动提升为全局变量
2025-03-25 12:12:25
81
原创 现代Web开发核心API全景:从DOM操作到设备集成
观察者模式 API(如 MutationObserver、IntersectionObserver、ResizeObserver 和 PerformanceObserver)可实时监控 DOM 结构变化、元素可见性、尺寸及性能指标,支撑懒加载、响应式布局和性能优化。Web Workers 和 requestAnimationFrame 分别通过多线程计算和帧同步机制优化性能,避免主线程阻塞。网络通信方面,WebSocket 支持实时双向数据传输,而 Fetch API 提供了基于 Promise 的现代化请
2025-03-23 11:25:19
984
原创 electron桌面应用多种快速创建方法
结合vite和vite前端页面模版搭建electron。结合next框架搭建electron。结合nuxt框架搭建electron。
2025-03-19 10:09:35
304
原创 基于nodejs中@langchain/langgraph框架实现workflow
【代码】基于nodejs中@lang/graph框架实现workflow。
2025-03-15 14:07:19
277
原创 nodejs将pdf转换成图片并提取图片内容
实现RAG将pdf文档内容添加到向量数据库进行向量检索时,表格等数据无法识别,可以先用多模态模型对数据进行提取,然后再添加到向量数据中。这样做查询时用文本向量模型就够了。对pdf中所有页面进行截图,手动指定了一张图片,对这个图片中数据进行了提取。
2025-02-27 15:05:17
447
原创 在nodejs中使用ElasticSearch(三)通过ES语义检索,实现RAG
RAG(Retrieval-Augmented Generation)是一种结合了信息检索和生成模型的技术,旨在提高生成模型的知识获取和生成能力。它通过在生成的过程中引入外部知识库或文档(如数据库、搜索引擎或文档存储),帮助生成更为准确和丰富的答案。它的核心思想是,生成模型不仅依赖于模型内部的知识,还可以在生成过程中动态地检索外部信息,从而增强生成内容的准确性和信息丰富度。如果存在,则先删除该索引,确保创建的是新的索引。如果检索结果中没有足够的信息来回答问题,生成的回答将是“我无法回答您的问题”。
2025-02-26 18:04:29
621
原创 在nodejs中使用ElasticSearch(二)核心概念,应用
核心概念,索引(index),映射(mapping),文档(document),在nodejs中使用
2025-02-20 15:28:35
514
原创 在nodejs中使用ElasticSearch(一)安装,使用
使用docker安装ElasticSearch,安转Kibana,Kibana设置中文,安装分词器analysis-icu,安装分词器analysis-ik,analysis-icu 和 analysis-ik 分词器的主要区别,在nodejs中使用ElasticSearch。
2025-02-19 10:13:24
818
原创 在Nodejs中使用kafka(三)offset偏移量控制策略,数据保存策略
offset偏移量控制策略, 自动提交(Auto Commit),手动提交(Manual Commit),Offset 重置(Seek)。数据保存策略,基于时间的保留策略,基于大小的保留策略,基于段文件的保留策略,清理策略。
2025-02-17 16:42:37
1043
原创 在Nodejs中使用kafka(二)partition消息分区策略
partition分区是 Kafka 高吞吐量、高可用性和分布式处理能力的核心设计之一。分区策略:手动指定分区、基于 Key 的哈希分配、轮询策略、自定义分区策略、粘性分区策略。分区策略对比。
2025-02-17 10:56:12
550
原创 在Nodejs中使用kafka(一)安装使用
kafka安装、使用docker安装kafka、kafka核心功能、kafka核心组件、nodejs使用kafka。
2025-02-16 12:08:56
832
原创 在nodejs中使用RabbitMQ(六)sharding消息分片
将消息分布到多个队列中,这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载,从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间分配负载,避免单个队列过载。(注:不能单独消费分片消息。消息分片不利于消息顺序区分)通过rabbitmq management添加策略,用于分片消息匹配转发。RabbitMQ 的分片插件。
2025-02-14 21:00:46
644
原创 在nodejs中使用RabbitMQ(五)死信队列,延迟队列
死信队列用于存储那些不能被正常消费或处理的消息,以便后续审查或重新处理。设置一个专门的交换机(Dead Letter Exchange,DLX),并将死信消息转发到该交换机。:如果队列已经达到最大长度,且还有新消息进入,RabbitMQ 会丢弃老的消息并将其送到死信队列。:如果消息的 TTL(存活时间)到期,消息会被认为是死信,自动转发到死信队列。:如果消息没有匹配到任何队列的路由规则,它会被送往死信队列。可以设置死信消息的路由键,以便将消息路由到适当的死信队列。),消息会被送往死信队列。
2025-02-14 12:37:08
1228
原创 在nodejs中使用RabbitMQ(四)队列类型Classic、Quorum、Stream
经典队列(Classic Queues)、仲裁队列(Quorum Queues)和流队列(Stream Queues)的特性对比。
2025-02-13 14:30:07
1197
原创 在nodejs中使用RabbitMQ(三)Routing、Topics、Headers
producer.ts 生产者主要发送消息,consumer.ts负责接收消息,同时也都可以创建exchange交换机,创建队列,为队列绑定exchange,为避免重复简化代码,提高可维护性,队列相关操作移动到消费者端。队列,exchange交换机推荐在启动程序前手动创建好。使用direct exchange实现下图。
2025-02-11 16:08:44
424
原创 在nodejs中使用RabbitMQ(二)发布订阅
使用direct类型交换机,只有路由键匹配的队列会接收到消息(精确匹配),适合需要根据特定条件(如路由键)将消息路由到特定队列的场景,如任务分配、错误处理等。使用Fanout 交换机实现广播,它不考虑任何路由键(routing key),而是将接收到的消息广播到所有绑定到该交换机的队列中。
2025-02-11 15:36:43
545
原创 在nodejs中使用RabbitMQ(一)安装,使用
RabbitMQ 是一个开源的消息代理软件(也称为消息队列),它实现了高级消息队列协议(AMQP)。RabbitMQ 提供了可靠的消息传递机制,适用于构建分布式系统、微服务架构以及需要解耦组件的应用程序。它支持多种消息传递模式,并且具有高度的可扩展性和灵活性。官方还提供了多语言支持:Python,Java,Ruby,PHP,C#,JavaScript,Go。RabbitMQ 的基本概念1.生产者(Producer):左侧绿色方框代表消息的生产者,生产者将消息发送到 RabbitMQ 服务器。
2025-02-11 14:39:14
811
原创 RocketMQ安装
RocketMQ 是一个分布式消息中间件,最初由开发,并于 2012 年开源。它设计上追求高可用、高吞吐、低延迟等特点,适用于大规模分布式系统中的消息传递和异步通信。RocketMQ 在和系统中广泛应用,尤其在需要保证高吞吐量、低延迟和高可用性的场景中表现尤为出色。
2025-02-08 17:39:31
326
原创 TypeScript 后端开发中的热重载编译处理
在一些除了nest框架外的一些其他nodejs框架中没有提供对ts编译和热重载,如果使用typescript我们需要自己进行配置。
2025-01-01 17:31:01
384
原创 Rust HashMap使用
HashMap是一个功能强大的数据结构,它结合了哈希表的高效性和 Rust 编程语言的内存安全特性。通过提供常数时间复杂度的查找、插入和删除操作,以及丰富的 API,它在许多实际应用中都非常有用。
2024-12-09 23:07:43
473
原创 Rust中常用的命令工具
cargo generate 通过模版创建项目cargo watch 等于nodemoncargo binutils 更快的连接cargo deny 检查第三方依赖cargo audit 检查第三方依赖cargo tarpaulin 检查测试覆盖率typos-cli 拼写检查工具,RustRover内置了不需要git-cliff 生成git change log的工具cargo nextest rust测试增强工具pre-commit 向github提交代码时,会进行代码检查
2024-10-27 23:01:59
886
原创 Rust中,Box,Rc,RefCell使用依据,案例
案例三、使用Box,Rc,RefCell实现链表循环添加,遍历。案例二、分别使用Rc、Box实现链表。案例一、Box实现链表,链表循环。
2024-10-10 22:14:51
663
原创 trpc快速上手
tRPC (Type-safe Remote Procedure Call) 是一个用于构建类型安全的 API 的框架,它能够在前端和后端之间共享类型,确保类型安全性。这对于使用 TypeScript 的项目特别有用,因为它消除了前后端类型不一致的问题,提高了开发效率和代码质量。trpc也可以集成到 Express, Fastify,Next中。
2024-06-13 21:30:56
590
原创 nodejs设置强制缓存,协商缓存
基于资源的最后修改时间进行缓存协商。基于资源的内容哈希进行缓存协商。强制缓存指的是服务器在响应头中设置缓存控制策略,告知浏览器在一定时间内不需要向服务器请求,直接使用本地缓存。
2024-05-25 11:21:44
636
原创 koa使用ws,scoket.io建立websocket连接,断开重连
【代码】koa使用ws,scoker.io建立websocket连接,断开重连。
2024-05-24 13:43:26
702
原创 Pinia使用方法,数据持久化
2、 建立事件监听,在pinia添加导入导出的方法,在当页面刷新前将pinia中数据导出,保存到localstorage或indexedDB中,刷新好后再取出数据保存回pinia中。1、使用插件如 pinia-plugin-persistedstate。pinia数据持久化。
2024-05-11 15:55:41
1117
原创 typescript 不是特别常用,容易忘的知识点
1、花括号对象通过方括号字符串形式取值2、泛型约束3、枚举4、抽象类5、函数重载6、interface定义class的类型,interface继承7、构造函数的定义、继承8、修饰器在修饰器有:类修饰器、方法修饰器、参数修饰器、属性修饰器。执行顺序:属性>方法>参数>类。
2024-05-05 12:00:40
335
1
转载 nuxt3 Cannot stringify a function
Cannot stringify a function。解决方法一,在nuxt.config.ts中添加如下配置。解决方法二,在onMounted 中执行对应代码,这可能是因为在服务端渲染,使用setup执行过早导致的。
2024-05-01 21:32:37
392
windowx64 oracle12.2.0.1.0 命令行工具集
2024-03-05
instantclient-sqlplus-windows.x64-21.13.0.0.0dbru.zip
2024-03-05
instantclient-tools-windows.x64-12.2.0.1.0.zip
2024-03-05
nodejs中如何安装并运行@tensorflow\tfjs-node
2024-10-06
原生微信小程序如何安装ali-oss,获取阿里云存储图片。
2024-09-27
Next.js中有必要使用react-router-dom吗
2024-08-22
鸿蒙应用无法建立websocket连接
2024-05-24
Observed,ObjectLink 父组件数据改变,子组件数据没有变化
2024-05-22
@tweenjs/tween.js 定义往复运动动画偶尔会出现不正确的闪动
2024-05-18
vscode 提取扩展时出错。XHR failed,电脑和vscode都未配置代理,代理服务器等,已添加host,清除过dns缓存,重启vscode均无效,重装过vscode。页面可访问插件网址。
2022-11-03
Angular ionic中form表单报错
2022-09-28
vscode运行C++报错
2022-09-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人