- 博客(84)
- 收藏
- 关注
原创 pkg打包nodejs程序用动态require路由出现问题
而项目中依据route文件夹下的文件动态use相应的router,这就需要动态require,但是这个require的路径会被虚拟路径代替导致取不到,所以可以使用写死声明router的方法。pkg打包的时候会自动生成一个虚拟路径/snapshot/…会导致你的路径出现一些问题。
2024-04-09 11:41:42 391
原创 谷歌地球kml文件读取(nodejs)
有个需求,需要在地图上打点然后读取出这些坐标,但是谷歌地球的数据会保存在kml里面,不像csv格式那样好拿。
2024-03-04 10:26:40 575
原创 mysql数据库操作小寄巧
查询某个json字段(xx)的某个属性下的某个数组里的第n个元素的某个属性(究极叠buff版)其中SYSDATE()是执行当前函数的时间,NOW是执行当前sql的时间。INTERVAL来表示时间间隔,直接加。时间可以直接字符串比较。
2024-02-27 16:38:08 522
原创 nodejs生成有样式的excel
需要按照模板生成excel,还要有样式,比如:某些单元格合并,某些单元格背景颜色改变什么什么的;但是之前学的node-xlsx要改变样式需要再安装xlsx-style,还要用xlsx里面的三个文件什么的,感觉很麻烦还不好搞,所以选择了excel4node。
2024-02-05 10:40:08 1031
原创 拖拽效果库sortablejs
sortable可以适用于列表,表格以及弹窗等等的拖拽效果,使用起来也很简单,像等组件库没有拖拽等一些功能就可以使用sortablejs来解决这个问题。
2024-01-10 14:39:34 1010
原创 菜单显示博客页
结果图难点及其实现滚动条自定义:.card::-webkit-scrollbar {width: 4px;}.card::-webkit-scrollbar-thumb {border-radius: 8px;box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);background: #666666;}.card::-webkit-scrollbar-thumb:hover {background: #333333;}鼠标点击样式样式图
2024-01-05 15:58:38 426 1
原创 Vue3+Three.js星空球体
首先是设置相机和render,要注意的就是相机要加上aspect不然如果页面不是正方形看到的样式就会失调。在onmounted中加入resize事件的监听,这样即使缩放也不会又问题。
2024-01-02 17:32:40 929
原创 node-schedule nodejs定时提醒(并判断段是否是工作日)
工作中有个需求:在特定的时间发送一些消息,也就是说比如在每天的7点发送消息:该起床了。一开始我想用定时器每分钟每分钟的去查当前时间,但好像有点蠢,然后我找到了这个包。
2023-12-25 17:22:30 578
原创 创建个人网站(二)前端主页设计和编写一(太阳移动)
为什么创建个人网站一之后几天没有动静了呢,一个是家里有事实在比较忙,第二个原因是没想到主页要设计成什么样,知道前两天问我姐什么样的主页比较炫酷,我们得出的结论是也许有层次感的会很不错,我想起了之前看到的wallpaperengine的壁纸,有个随时间变化的壁纸我觉得很棒,那不如就以这个为参考,因为我的博客不需要太多模块,只要让主页变成一个内容入口就行了,搞得月花里胡哨越好,就在昨天我看到了一个codepen用的是svg制作的一个按钮,我觉得可以用svg做一个动画,目前准备先搞一个随滚轮移动的太阳。
2023-12-19 23:10:42 1036 2
原创 创建个人网站(一)从零开始配置环境,搭建项目
从刚开始学前端的html直到现在前后端都有在开发,我一直都有一个想法,就是创建自己的网站,我相信大家都有这个想法,那么我决定从零开始创建我自己的个人网站,并在此记录下来(真的是从零开始,刚好电脑也坏了,现在买了个新的,全新,0配置,真正意义上的从零开始)
2023-12-09 23:01:09 918
原创 对于koa中间件的理解
大家都知道koa是洋葱模型,先一层一层通过next往下,之后再回去执行next后面的内容,next即使没写,最后也会进入下一个中间件。那么什么是ctx呢,ctx顾名思义就是上下文,也就是上一层传给下一层的东西,无论是方法还是对象都可以使用。
2023-11-17 16:03:16 913
原创 js小知识点杂记
interopRequireDefault的作用就是判断require的模块是否是已经被babel编译过的模块,如果是,则当前require的引用一定存在一个default属性;之前好像见过但是没怎么在意,看红宝书的时候刚好看到了,记录一下,这个在多层循环的时候可以任意跳出某个循环,可以用continue和break加上label名称,如下示例。,被赋值的时候如果是对象之类的引用数据类型,那么只会获得一个指针地址,而不是整个数据。import是先不执行,遇到使用到的时候再真正的读取模块;
2023-11-08 15:54:55 498 3
原创 视频相关学习笔记
网上找到一张图,这个就很清楚的解释了什么是采样,如何采样。这里也能看出YUV相对于RGB的优势,RGB属于4:4:4一个像素3字节,而YUV可以压缩到1.5字节对YUV4:2:0认识理解YUV图像基础知识。
2023-10-25 13:33:04 810
原创 nodejs使用es-batis
这是DTD(Document Type Definition)声明,用于指定XML文件的文档类型。在这里,它指定了MyBatis的Mapper文件的DTD,版本为3.0。:这是XML文件的声明,表示使用XML的版本为1.0,并使用UTF-8编码。前两行是XML文件的声明部分,用于指定XML版本和编码方式。这里的xml如果要放在单独的文件里按如下方法使用。namespace和id我的理解是方便调用;
2023-10-23 09:35:37 316
原创 nodejs excel操作(读取和生成)
使用build函数生成pdf,build里的参数是sheet的数组,每个sheet的格式是{name,value},name是sheet名,value是表格里的数据的二维数组。这个parse在解析时间的时候会出现一些问题,时间会变成浮点型,如果你有时间,可以使用parse的第二个参数。
2023-10-16 11:53:11 1805
原创 lodash学习笔记
能使用原生js做到的尽量不要使用lodash,一个是作者已经停止维护了,就尽量不要过度依赖这个库,第二,这个库很多内容是可以用原生简单解决的,用它反而效率降低,没有必要。lodash包括很多工具函数,可以操作数组,集合,数字,字符串,也有一些很方便的函数可以调用。移除数组中的某些元素,可以单个移除不一定连续,然后这个函数返回的是移除的元素组成的数组。对集合进行处理,第一个参数是数组,第二个参数是处理函数,第三个是这个方法的参数。按某个条件进行分类,第二个参数就是条件,这个条件将转换成结果。
2023-10-12 09:55:45 532
原创 正则表达式
基本符号^首部,例如 $ 尾部 *0个或多个 + 一次或多次(至少一次 ?一个或0个 .单个字符 | 二选一 () 匹配括号里的全部字符 [] 匹配括号中的一个字符 {}限定匹配次数,比如{min,max}表示范围在min到max的 \w英文字母和数字 \W 非字母和数字 \d 数字 \D 非数字
2023-10-10 11:45:10 77
原创 socket.io学习笔记,含简易聊天室demo代码
nodejs后端:npm install socket.iovue前端:npm i vue-socket.io -Snpm i socket.io-client -Snodejs:前端:事件触发on接收事件,第一个参数是event,第二个参数是回调函数emit触发事件,第一个参数是event,第二个参数是事件参数connection:连接的时候自动触发disconnect:断开连接的时候自动触发chat message(随便自定义的名称):点对点通信事件,回调函数里有参数msg(收到的消息)
2023-10-08 11:21:36 254
原创 nodejs在pdf中绘制表格
之前我已经了解过如何在pdf模板中填写字段了nodejs根据pdf模板填入中文数据并生成新的pdf文件但是当我具体使用的时候,我发现我的模板里面有表格,表格的长度是不固定的,所以需要动态生成一个表格,就要在原方案生成的pdf后面自己画上表格,可以在pdflib的官网上看到一些例子。
2023-09-25 10:00:39 817
原创 nodejs正则格式化规范输入
比如我现在要格式为Axxx-xxx(xxx是数字)的格式,但是输入有可能为A1-2这种情况,就需要补零,变成A001-002。
2023-09-15 11:09:58 276
原创 nodejs使用kafka
topic:Topic(主题)是消息的逻辑分类或者容器。它是 Kafka 中最基本的概念之一,用于组织和管理消息的发布和订阅。我的理解是一个topic就是一个消息队列,为了让各种不同的消息不打岔,才分出不同的topic。
2023-09-11 17:50:57 1014
原创 jsmpeg.min.js进行rtsp视频解码
首先引用jsmpeg的库,然后用它的player进行播放,它用的是canvas进行播放,代码如下。经测试局域网内延时在800ms左右。
2023-09-01 14:10:50 680
原创 nodejs将rtsp视频流打上水印后通过websocket发送给前端
但是如果将ffmpeg的这个代码推至留一个rtsp流中就会报错,而且报错没有报错信息,只有一些奇怪的东西报错上来(目前还不知道原因,如果知道了原因会补上)我们还需要给视频加上水印,比如我需要给视频进行画框,可以采用ffmpeg来进行画框。这样就可以在传输的过程中直接绘制图形。你可以使用ffplay试播放一下。ffmpeg的代码如下。
2023-09-01 14:00:51 926
原创 Sequelizejs框架学习(待更新)
model如果你不想使用sql语句,那么你需要建立模型model可以方便数据校验,数据关联等可以用一下快捷命令创建modelsequelize-auto -h ip -d 库名 -u 用户名 -x 密码 -p 端口号 -o 地址 -t 表名注意sequelize-auto要全局安装(npm isequelize-auto -g)model组件格式:const { DataTypes } = require("sequelize");const sequelize =
2023-08-29 13:36:01 370
原创 Koa框架学习
在 Koa 中,路由中间件负责根据不同的 URL 路径将请求分发到不同的处理函数,而请求方法中间件负责根据请求的 HTTP 方法(如 GET、POST 等)确定是否允许该方法的请求。这样,当请求到达时,首先会通过路由中间件进行。是request和response的集合,ctx.request.body表示收到的请求体,ctx.body表示要发送的应答体。注意koa-body进行的文件上传是先下载到本地的,如果需要的功能是导入之类的,这个文件用完就没用了,记得及时删除。,然后再通过请求方法中间件。
2023-08-29 11:22:01 293 2
原创 前端优化页面加载速度的方法(持续更新)
async注意:由于脚本是异步加载的,它们可能不会按照它们在 HTML 中出现的顺序执行,因此需要谨慎处理脚本之间的依赖关系。deferdefer使用这些属性时,要确保你的脚本不会依赖于页面中尚未加载的元素,否则可能会出现错误。根据脚本的性质和页面结构,选择适合的加载方式,以实现更好的性能和用户体验。,通常在<script>标签上使用async或defer属性,因为 Vue.js 在加载和初始化时不会阻塞页面的加载和渲染。Vue.js 应用通常在页面加载完成后再初始化,这使得它们不会影响页面的呈现速度。
2023-08-25 15:48:43 600
原创 git冲突处理(已commit但忘pull的情况)
一般来说,你只要记得先拉再传就不会有问题,但如果pull后没有立刻push,这段时间刚好有人push了,就会导致冲突,那么你可以使用以下方法进行版本回退之后合并代码。可以使用sourceTree进行贮藏代码更加方便。如果直接用命令进行贮藏,则可以参考一下以下命令。祝大家代码仓永不冲突!
2023-08-25 11:53:39 1403
原创 nodejs根据pdf模板填入中文数据并生成新的pdf文件
这里的Object.entries是将对象变成数组方便循环,也可以用for...in进行对象遍历。这三行表示读文件,并且读取pdf表单,之后在pdf的表单中寻找字段,之后填入字段。pdf模板可以使用福昕pdf进行制作,百度一下都能查到。最后将数据存入新文件中。
2023-08-23 17:01:45 2335
原创 Koa框架简介:构建高效、灵活的Web应用
Koa是一个基于Node.js的Web框架,它由Express.js的原作者设计和开发,旨在提供一种更加简洁、灵活的方式来构建Web应用。Koa采用了异步、中间件和生成器等概念,让开发者能够更轻松地处理请求和响应、控制流程以及处理异步操作。Koa是一个高效、灵活的Web框架,通过异步、中间件和生成器等概念,使得开发者能够更轻松地构建Web应用。它的简洁的语法和强大的功能使得Koa成为了Node.js生态系统中备受欢迎的选择。希望本篇介绍能够帮助你对Koa有一个初步的了解,并开始探索和应用这个优秀的框架。
2023-08-22 17:47:58 1497
原创 geo算法了解学习以及选择
手写的geo算法在时间效率上要远高于另外两种方法,空间占用略少于前两种;时间上的区别主要是因为手写的geo算法不需要通过网络,直接从内存中获取,而redis虽然也是从内存中获取数据,但是要经过网络传输进行计算,mysql无论计算还是获取数据都是通过网络,时间上最慢。空间上来说,前两种方法几乎一致,都是把事件读取到内存,别的都不消耗内存空间;而手写的geo需要把桩号也录入内存,比前两种空间占用略大,这个大小差是桩号个数×12字节(桩号id,经纬度各四个字节)持久化角度来说,数据库的持久化肯定是最好的;
2023-08-22 16:56:33 354
原创 js异步操作
这是一个常见的async/await的异步操作,一般来说都是因为a是要查数据库或者别的异步操作才能实现,所以才选择使用这个,那么如果getA返回的是一个对象,我只要这个对象里的a该如何处理呢?答案是B,因为要先等待异步操作的完成才能获取到对象里的属性。
2023-08-14 16:46:15 74
原创 809协议nodejs编写笔记
有的地方上写着用gbk有的地方没写,没写的时候就要注意这个字段是否有中文存在的可能,比如车牌号肯定有中文,只要有中文一律使用gbk编码,在协议的数据类型介绍里面有详细描述(但我第一次看的时候完全忽视)通过一个mian文件创建多个子进程,子进程的配置信息放在一个config.js的文件里,从数据库调用查找(里面有密钥,接入码,密码,用户名等)当启用多个进程的时候可能会调用同一个js组件文件,如果每个进程都要对此文件的变量进行修改,会不会影响并行的进程?答案:不会,不同进程互不干扰,地址不同。
2023-08-14 16:39:55 499 1
原创 809协议解读遇到的一些小问题
它和808不同,它的头和尾标识不一样,头是5b,尾是5d转义方式:5b->5a 015a->5a 025d->5e 015e->5e 02。
2023-07-17 11:26:12 409
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人