- 博客(59)
- 收藏
- 关注
原创 前端通过命令行同步不同数据库中的数据
在实际开发工作中,我们经常需要在不同环境(开发、测试、UAT等)之间同步数据库表数据。本文将介绍如何使用 Node.js 编写一个命令行工具来实现这一需求。
2025-10-27 16:16:24
578
原创 通过命令行生成uniapp的pages.json文件
本文详细介绍如何创建一个自动生成 pages.json 配置文件的Node.js脚本,主要用于在vscode下开发uni-app等需要此配置文件的项目。
2025-10-22 17:20:03
275
原创 解决使用OSS的multipartUpload方法上传大文件导致内存溢出的问题
通过动态分片、流式处理、并发控制、断点续传清理等策略,可以有效避免内存溢出问题。避免一次性加载大文件到内存。合理分配资源(分片大小、并发数)。及时释放无用资源(如取消请求、清理缓存)。完整代码已在实际项目中验证,成功上传10GB+文件.
2025-08-29 17:24:18
593
原创 集成koa2+ts+typeorm记录
e / --engine: 数据库引擎类型(如 mysql,)。-o / --output-dir: 生成文件的目标目录。-h / --host: 数据库服务器的IP地址或域名。给tsconfig.json增加属性,避免生成的实体报错。-d / --database: 要连接的数据库名称。-p / --port: 数据库服务器的端口号。-u / --user: 登录数据库的用户名。-x / --password: 数据库密码。生成tsconfig.json。修改tsconfig.json。
2025-08-14 14:33:53
323
原创 封装上传组件,提供各种校验、显示预览、排序等功能
相关能力- 提供图片、音频、视频的预览功能- 提供是否为空、文件类型、文件大小、文件数量、图片宽高校验- 提供图片回显功能- 提供在达到数量限制和禁用时不显示文件选择器的能力- 提供点击上传和拖拽上传- 提供文件排序功能
2025-01-03 16:25:42
920
原创 MAX_VALUE 和 MAX_SAFE_INTEGER的区别及相关知识
MAX_VALUE是所能表示的最大数值,1.7976931348623157e+308MAX_SAFE_INTEGER是最大安全整数,9007199254740991
2024-08-29 15:44:57
1055
原创 JS正则表达式学习与实践
6、字符出现的次数范围匹配”{n,m}“:表示一个字符出现的次数范围,可以在该字符的末尾,将它出现的次数写进大括号 {min,max} 中,如 {1,4};5、字符出现至少次数匹配”{n,}“:表示一个字符至少出现的次数,可以在该字符的末尾,将它出现的次数写进大括号 {min,} 中,如 {1,};4、字符出现次数匹配”{n}“:表示一个字符出现的确切次数,可以在该字符的末尾,将它出现的次数写进大括号 {} 中,如 {1};4、字符范围”[a-z]“、”[0-9]“:匹配方括号字符范围内的字符;
2024-08-02 10:07:51
822
原创 将Knife4j所展示请求参数和响应参数转化为TS类型声明
目标:在浏览器控制台输入js代码,将读取页面所展示的请求参数和响应参数,将他们转化为TS的类型声明,并在控制台中输出出来。
2024-03-29 16:55:21
913
原创 像uniapp image标签一样对图片进行缩放和裁剪
在使用uniapp开发时觉着image标签的mode属性非常的使用,符合多种开发场景,并且最近有在整理`object-fit`和`object-position`的笔记,正好利用css属性按照image标签对于图片的缩放和裁剪处理,总结一套自己的经验。
2024-03-20 16:15:29
3557
原创 使用CSS的object-position实现图片在img标签中的定位
在CSS中,`object-position`属性它允许我们精确地控制替换元素(如``、``等)内容在其容器内的位置。通过指定水平和垂直方向的偏移量,可以轻松地调整元素内容在容器内的起始点,实现精准定位。
2024-03-18 18:58:51
2630
原创 让图片适应标签的CSS object-fit属性
在实际的项目运行过程中,可能出现运营人员上传的文件与预期的图片尺寸不同的情况,为了解决这一问题可以使用 object-fit 属性,对嵌入的图像(以及其他替代元素,如视频)做相应的变化,更加精确地控制图像的展示效果,从而满足多样化的设计需求。
2024-03-18 18:30:23
3080
原创 基于高德地图JS API实现Vue地图选点组件
基于高德地图JS API2.0实现一个搜索选择地点后返回给父组件位置信息的功能,同时可以进行回显
2024-03-15 11:08:45
2255
2
原创 通过Node.js获取高德的省市区数据并插入数据库
将使用高德地图API https://restapi.amap.com/v3/config/district?parameters进行行政区域查询,API详细文档可看。
2023-10-10 16:06:03
2029
原创 二次封装element-plus上传组件,提供校验、回显等功能
提供能力- 提供图片、音频、视频的预览功能- 提供是否为空、文件类型、文件大小、文件数量、图片宽高校验- 提供图片回显功能,并保证回显的文件不会重新上传- 提供达到数量限制不显示element自带的加号
2023-08-14 14:23:09
1780
1
原创 基于ali-oss实现不同类型文件上传不同的bucket
基于ali-oss实现不同类型文件上传不同的bucket,并根据大小判断使用直接上传还是分片上传
2023-08-04 17:09:43
663
原创 js设置默哀用全局灰度
通过动态的新增/删除link标签,使js能操作是否引入css。如果现在时间大于了之前保存的灰度结束时间。如果新的灰度时间区间囊括了现在时间。如果之前没有获取过灰度时间区间。则重新获取灰度时间的区间。则将全局样式加入灰色滤镜。
2023-06-20 15:45:42
645
原创 js实现继承属性和方法
挂载在函数内部的方法,实例内部会复制构造函数的方法挂载在原型上的方法,不会去复制。挂载在内部和原型上的方法都是可以通过实例去调用的一般来说,如果需要访问构造函数内部的私有变量,我们可以定义在函数内部,其他情况我们可以定义在函数的原型上在函数外定义的方法,只能用类调用构造函数内函数名直接调用报错函数外函数名直接调用正常执行函数外 prototype上函数名直接调用报错构造函数内实例化对象调用正常执行函数外实例化对象调用报错函数外 prototype上。
2023-05-03 17:38:56
1021
原创 使用spc2实现项目的多环境自动化部署
1、使用cross-env修改系统常量,使程序知道接下来的操作要想那个服务器自动部署2、使用ssh2操作服务器,将服务器上原有的项目改名,并放入记录文件夹3、使用scp2将打包后的文件发送到对应的服务器的指定位置
2022-12-28 20:17:32
636
原创 使用inputmode改变移动端键盘弹出的类型
使用原因:需求是同时兼容移动端和PC端的输入,输入框数量多且绑定不同的对象,原本考虑使用vantUI的数字键盘,但是实际使用起来问题比较多,偶然间发现了inputmode这个属性,它可以改变移动端唤起拟态键盘的方式。可以直接查看官网说明提示:以下是本篇文章正文内容,下面案例可供参考。
2022-12-20 17:35:19
2543
1
原创 从URL中获取参数后,修改URL,并且不跳转页面
需求:通过统一认证登录页面跳转过来,会通过URL的形式携带Token,需要从URL中获取到Token并存储到本地。问题:由于使用Hash的路由模式,会在原始URL的末尾拼接"/#/",导致也一直被展示在URL上,十分不美观。方案:通过history.replaceState的方式修改URL,不会产生页面跳转的问题。
2022-10-26 09:41:57
2174
原创 保存滚动位置的实现方法
有的时候从列表页面进入详情页面再返回列表页面,即使使用了keep-alive缓存列表页,也会导致列表页面你的滚动位置发生了变化。两个页面高度不一致导致页面跳转的时候滚动条位置发生了改变;keep-alive不会缓存滚动条的位置。为了解决这个问题我们需要手动的保存列表页面的滚动条位置,并再切换回列表页面的时候滚动到保存的位置。
2022-10-01 17:12:27
2503
原创 nvm与nrm
nvm(Node Version Manager) 是一种用于管理多个主动节点.js版本的工具。它可以使用简单的命令在本地下载任何远程长期支持 (LTS) 版本的 Node.js。可以直接从命令行在 Node.js 的多个版本之间轻松切换。nrm(NPM Registry Manager)是一个npm源管理器,它允许用户快速地在不同的npm源之间切换,以提高npm包的下载速度和稳定性。。
2022-09-19 15:45:35
90
原创 grid常用属性及属性值介绍
本文章是使用的总结,以便于复习使用,如有错误希望指出。grid布局方式真的好用,无愧于是最强大的CSS布局方案。不适合无基础的人看,本文章更像是笔记。提示以下是本篇文章正文内容,下面案例可供参考。...
2022-07-23 00:35:31
3142
原创 js结束循环的三种方式对比(break、continue、return区别)
break实际有两种用法,分别为:1.它可用于终止 switch 语句中的一个 case。2.当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。如果是多层循环,break 语句会跳出所在的当前整个循环,到外层代码继续执行。break不仅可以结束其所在的循环,还可结束其外层循环,但一次只能结束一种循环continue 会结束本次循环,直接开始下一次循环。对于 for 循环,执行continue 语句后自增语句仍然会执行,对于 while 和 do…whil
2022-06-11 17:44:14
6155
5
原创 Vue组件间传值的几种方式
1、使用v-bind和props的组合实现父向子传值在父组件可以通过"v-bind:参数名"或者":参数名"的形式传递参数,参数值可以为任何数据类型,并且在子组件中不能更改父组件传递过来的数据。<!-- 父组件部分,向组件level1传递两个参数,test和temp --><template> <level1 :test="1" :temp="'abc'"></level1></template>在子组件使用props接收父组件传递过
2022-05-11 13:52:10
2494
原创 /deep/和::v-deep与:deep()
在vue中,我们为了避免父组件的样式影响到子组件的样式,会在 <style> 标签上设置scoped属性,这样它的 CSS 只会应用到当前组件的元素上,即使父组件中有跟子组件相同的class名称或者选择器的时候,也不会影响到子组件的样式。但是有的时候我们需要,我们需要在一个组件中改变被引入组件的样式,直接使用class命名改变样式没有任何反应,这种情况就需要使用/deep/或::v-deep了。在vue3.0之前可使用/deep/深度选择器进行样式的更改//单选框修改未点击时的边框颜色/
2022-04-18 11:11:25
21901
原创 微信支付和支付宝支付所用应用签名如何获取
微信支付官网说明:微信支付官网链接签名工具下载地址具体流程(已uniapp为例)1、首先需要生成安卓证书,确定好包名并打包APK。证书生成方式如下keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 36500 -keystore 证书名.keystore证书生成详细教程2、将APK安装至手机,将签名工具安装至手机。3、输入包名获取签名如果报错,请确定输入包名是否正确,与打包时的输入的包名是否相同,如果不确定AP
2022-04-13 20:10:52
2960
原创 地图信息窗口点击事件触发methods中的方法
核心代码将methods里边的方法赋值给全局变量// 将methods里边的方法赋值给全局变量window.mapCallback = this.mapCallbackmethods:{ mapCallback(IMEI, type) { //业务处理 }}实现过程1、点击弹出窗体//初始化infoWindowvar infoWindow = new TMap.InfoWindow({ map: this.mapEntity, position: new T
2022-03-04 10:52:54
625
原创 隐私政策提示框内容中的链接使用本地 html 页面地址(androidPrivacy.json中所用)
隐私政策提示框内容中的链接使用本地 html 页面地址(androidPrivacy.json中所用)
2022-02-26 15:57:57
7194
29
原创 uniapp唤起APP
实现思路设置UrlSchemes代码实现const u = navigator.userAgent;// 获取运行环境对象const versions = { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Geck
2022-01-06 11:25:24
1935
原创 uniapp获取手机唯一标识IMEI、MAC、UUID
// #ifdef APP// 导入Java类。Networklnterface类表示一个由名称和分配给此接口的IP地址列表组成的网络接口const net = plus.android.importClass('java.net.NetworkInterface');// 搜索具有指定名称的网络接口const wlan0 = net.getByName('wlan0');// 获得网卡的硬件地址const macByte = wlan0.getHardwareAddress();let ..
2021-12-23 11:15:21
12522
7
现代js是否还是单线程执行的呢
2023-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅