自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轻风细雨_林木木

不去做你怎么知道做不到。

  • 博客(755)
  • 资源 (12)
  • 问答 (3)
  • 收藏
  • 关注

原创 不同的数据库操作方式:MongoDB(NoSQL)和 MySQL/SQL

本文对比了 MongoDB 和 MySQL 两种数据库在用户查询与更新操作中的不同写法。MongoDB 采用异步 await 语法,使用 findOne 和 updateOne 方法进行 JSON 数据操作,而 MySQL 采用回调函数或 async/await 执行 SQL 查询。优化建议包括增加错误处理、改用 Promise 风格及使用 ORM 工具。关键区别在于:MongoDB 适合非结构化数据,语法更灵活;MySQL 适合结构化数据,需注意 SQL 注入防护。推荐写法均采用 try/catch 进行

2025-06-02 00:46:48 805

原创 数据库 MongoDB (NoSQL) 与 MySQL (SQL) 的写法对比

摘要:MongoDB(NoSQL)与MySQL(SQL)数据库在结构和操作上存在显著差异。MySQL采用表格结构,需预定义模式,使用SQL语言;MongoDB采用文档存储(BSON),无需预定义模式。对比显示MongoDB在数据模型灵活性、扩展性和JSON支持方面优势明显,适合非结构化数据和敏捷开发;而MySQL在事务支持、复杂查询和数据完整性方面更强,适合结构化数据和高一致性要求场景。实际应用中可根据需求选择或混合使用两种数据库技术。

2025-06-02 00:39:30 409

原创 res.json() vs res.send() 的区别

Express.js 中 res.json() 与 res.send() 的区别 res.json() 和 res.send() 都是 Express.js 的响应方法,主要区别在于数据处理方式: res.send() 自动推断 Content-Type,支持字符串、JSON 和 Buffer 等数据类型; res.json() 强制设置 Content-Type 为 JSON,无论输入类型如何都会转为 JSON 格式。 使用建议: 明确返回 JSON 时优先用 res.json()(如 API 响应) 需

2025-06-01 23:29:23 383

原创 Redis 存储邮件验证码的完整代码

本文介绍了一个基于Redis和Node.js实现的高性能邮件验证码系统。系统通过Redis存储验证码并设置过期时间,包含发送验证码和验证接口。关键功能包括:防刷机制限制60秒内只能发送一次、验证码5分钟有效、IP限流防止滥用。文章还提供了安全增强选项如加密存储验证码,以及生产环境部署建议如Redis密码认证和持久化配置。该系统具备高性能、防刷能力和生产级可靠性,适用于各种需要邮件验证的场景。

2025-06-01 23:18:27 247

原创 邮件验证码存储推荐方式

摘要: 邮件验证码存储推荐使用 Redis,因其具备高性能、自动过期(TTL)、原子性操作及分布式支持等优势。对比内存(Map)易丢失、数据库性能低等缺点,Redis 通过 SETEX 命令存储验证码并设置有效期,结合加密存储和防刷策略(如限制尝试次数)可显著提升安全性。生产环境中建议配置 Redis 集群和高可用方案,并遵循 业务前缀:唯一标识 的键名设计规范。完整流程示例涵盖发送、验证及防刷逻辑,适用于绝大多数高并发场景。其他方案(如内存或数据库)仅推荐用于开发测试或特定需求场景。

2025-06-01 23:05:26 1003

原创 Cursor 中三个选项 Agent 、 Ask 和 Manual 含义

Cursor提供三种AI交互模式:Agent模式让AI主动处理代码任务(如生成/重构代码);Ask模式需手动提问获取AI建议;Manual模式则完全关闭AI功能。推荐根据需求选择:Agent适合自动化操作,Ask适合针对性提问,Manual适合纯手动编程。各模式切换灵活,满足不同开发场景需求。(149字)

2025-06-01 16:05:54 195

原创 Css样式中设置gap: 12px以后左右出现距离问题解析

摘要: 问题现象是flex布局的gap属性在单子元素容器中产生了间距,原因在于框架默认添加的::before/::after伪元素被gap识别为子节点。通过开发者工具可验证伪元素存在,导致.el-input与伪元素间各产生12px间距。解决方案包括:1) 清除伪元素布局影响(推荐用display:none);2) 改用margin-left替代gap控制间距。该问题常见于Element-UI等框架的表单项布局场景。(150字)

2025-05-30 17:16:27 597

原创 微信扫码登录 - 公众号网页授权,总结(二)返回指定页面

本文介绍微信扫码登录公众号网页授权的回调处理流程,重点说明如何根据授权状态返回不同页面。核心步骤包括:1) 校验授权完整性,判断是否获取用户信息权限;2) 检查是否为匿名用户;3) 查询用户是否关注公众号;4) 根据判断结果返回对应的HTML页面(授权失败页/未关注页/已关注页)。文中提供了完整的代码实现,包括用户信息获取、关注状态检查和页面返回逻辑,并附有流程图说明整个判断流程。通过该方案可实现针对不同授权状态的差异化页面展示。

2025-05-27 11:56:47 136

原创 微信扫码登录 - 公众号网页授权,总结(一)成功返回聊天界面

本文总结了微信扫码登录的实现流程:1) 后端生成带授权链接的二维码;2) 用户扫码后通过微信授权获取用户信息;3) 回调处理逻辑包括获取access_token、查询用户数据或注册新用户;4) 最终返回自动关闭页面。关键点包含二维码生成、OAuth2授权、用户信息获取及数据库操作,通过WebSocket实现前后端登录状态同步,完成闭环登录流程。

2025-05-27 11:43:16 293

原创 解决 Tailwind CSS 代码冗余问题

Tailwind CSS 虽然功能强大,但容易导致 HTML 类名冗长和代码冗余。为解决这一问题,可以采取多种策略:使用 @apply 指令提取重复样式、创建可复用组件、借助编辑器插件优化开发体验、启用 JIT 模式提升性能、自定义工具类以满足特定需求、使用 clsx 或 classnames 库动态管理类名,以及定期重构和抽象代码。其中,定期维护和升级是确保代码简洁高效的关键。通过这些方法,可以有效减少 Tailwind CSS 的冗余问题,提升代码可读性和可维护性。

2025-05-18 19:15:08 301

原创 Vue 中生成源码映射文件,配置 map

在Vue.js项目中,开启开发环境的源码映射(source map)可以通过修改vue.config.js文件来实现。具体步骤如下: 配置vue.config.js:在项目根目录新建或修改vue.config.js文件,添加以下代码: const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true, configureWebpack: { devt

2025-05-18 04:04:33 237

原创 Flowbite 和 daisyUI 那个好用?

Flowbite 和 daisyUI 是基于 Tailwind CSS 的组件库,各有特色。daisyUI 上手简单,支持多主题切换,适合快速开发和轻量项目;Flowbite 设计更正式,组件丰富,适合企业级应用。daisyUI 天然兼容 Vue,Flowbite 需额外插件。两者社区活跃,但 Flowbite 更新更频繁。选择取决于项目需求:daisyUI 适合个人项目和快速迭代,Flowbite 更适合企业官网和管理后台。

2025-05-17 15:29:48 469

原创 Vue 2 项目中配置 Tailwind CSS、Font Awesome和daisyUI

在 Vue 2 项目中配置 Tailwind CSS 的步骤如下:首先,通过 npm 安装 tailwindcss@^2.2、postcss@^7 和 autoprefixer@^9 依赖。接着,使用 npx tailwindcss init 创建 Tailwind 配置文件(可选)。然后,在 src/assets 目录下新建 tailwind.css 文件,并添加 @tailwind 指令。之后,在项目根目录创建 postcss.config.js 文件,配置 Tailwind 和 Autoprefixe

2025-05-12 22:39:27 467

原创 为什么Vue项目中没有设置process.env但是还是可以获取

构建工具环境变量写法获取方式Vue CLIVUE_APP_ViteVITE_内建变量NODE_ENV都能访问到(Vite 模拟)

2025-05-04 00:22:12 333

原创 Nginx搭建test服务器

Ctrl + O 保存,Enter 确认,Ctrl + X 退出。新建目录,Git拉取项目代码,安装上插件包。创建域名:test.xxxxx.com。中添加配置文件,通过软链接放入。就可以控制自己的代理服务了。修改配置文件“服务器接口”所有已安装模块的配置存放处。建一个反向代理服务,在。

2025-05-02 18:57:07 750

原创 解决在Mac上无法使用“ll”命令

在 macOS 上,ll命令是一个常见的别名,它通常是指向ls -l的。但是,如果你看到,这意味着你当前的zsh配置中没有设置ll作为别名。

2025-04-30 15:50:43 677

原创 Vue 对话框出现时,为什么滚动鼠标还是能滚动底层元素

在 Vue 中,当对话框(如Dialog组件)出现时,底层页面仍然可以滚动,通常是因为对话框未正确阻止底层内容的滚动行为。解决这个问题的常见方法是通过控制页面的overflow样式来禁用底层内容的滚动。

2025-04-28 18:19:14 372

原创 Vue开发网站会有“#”原因是前端路由使用了 Hash 模式

网站链接中出现(井号)是因为你的前端路由使用了Hash 模式(hash mode),这是一种前端框架(如 Vue.js、React 等)中常用的路由策略。

2025-04-24 18:49:56 374

原创 版本号格式的语义化含义

版本号的格式1.0.0通常遵循规范,也就是我们常说的。1.0.0。

2025-04-23 11:02:50 189

原创 为什么不推荐在页面中大量使用 PNG 图片

PNG 虽然清晰,但在 Web 上体积太大,不适合大量使用,除非你真的需要透明背景或图形质量无损。

2025-04-20 01:26:58 145

原创 不同网页图片大小应该怎么选择

【代码】不同网页图片大小应该怎么选择。

2025-04-20 01:23:55 208

原创 JSAPI支付和小程序支付

JSAPI 支付是“微信网页内”的支付;小程序支付是“小程序内”的支付。虽然底层统一调用的是微信支付系统,但接入方式和使用环境不同。

2025-04-20 01:02:22 368

原创 小程序 GET 接口两种传值方式

一般 GET 接口只有两种URL 参数和路径参数。

2025-04-19 13:48:57 462

原创 小程序在 skyline 下如何开启多行省略

小程序实现多行文本省略的效果

2025-04-18 00:35:19 514

原创 小程序所有人都能登录,为什么还要添加 Token ?

首先这是个很好的问题,可以从 功能性 和 安全性 两方面来分析一下:如果:那确实可以不加 Token,也不会影响使用。标识用户身份做权限判断安全性考虑易于扩展你可以这样做:这样就像“发给每个人一个通行证”,哪怕啥都不做,以后也能追踪到:总结是否需要 Token?说明可以不加如果所有用户都一样、也不做身份相关操作建议加哪怕只是游客,也利于扩展、安全和身份标识但个人最后的建议是,一定要加!!!!推荐 用 openid + token 标记身份 方式添加。如果是综合系统

2025-04-17 18:59:23 360

原创 小程序返回按钮,兼容所有机型的高度办法

小程序状态栏,以及胶囊按钮属性的获取,返回按钮Top和Height与胶囊属性的设置。

2025-04-16 15:46:52 468

原创 小程序用户 ID 生成方式推荐

微型小程序用户ID生成推荐

2025-04-16 10:05:22 284

原创 小程序接口使用时,HttpOnly cookie 中的 sameSite 设置什么最合适

是设置 Cookie 的一个安全属性,用来防止。它是SameSite的三种取值之一。SameSite。

2025-04-15 22:04:44 183

原创 小程序获取用户总结(全)

说实在话,小程序的开发团队真的需要优化一部分人,这个接口前后都不知道改了几遍,这种关键接口反反复复搞,别说初学者,即便是做过小程序的人都头大,单是整理这个资料就花了很久的时间,是应该反省一下了。还有,小程序的开发社区,那是什么狗屎社区,基本没有起到解决问题的效果,大部分都是自己找资料解决。还有一些开发人员,自己做的一堆狗屎文档,解决不了问题还盛气凌人的态度,现在小程序成绩是前人的努力结果,并不是现在的你,坐着大办公室,整天不干正事,很多就是披着高校的皮,做事一点不靠谱!

2025-04-15 13:33:05 1287

原创 小程序最低基础库版本一般设置多少

生效,在开发版中不会强制限制。⚠️ 注意:这个配置主要用于。

2025-04-13 14:18:50 493

原创 微信小程序 WebView 模式和 Skyline 渲染模式的区别

项目WebView 渲染模式Skyline 渲染模式渲染内核WebView(网页)原生自研渲染引擎(类 Flutter)页面流畅度一般(低端机可能卡)高流畅度,丝滑体验启动速度相对慢更快内存占用较高更低动画/滚动体验可能掉帧基本 60fps调试体验工具成熟正在完善中最低基础库要求无特别要求>= 2.29.2适用场景通用兼容追求高性能/大厂级体验的项目。

2025-04-13 14:14:54 514

原创 Element 使用 textarea 内容实现高度自适应

属性来实现内容高度自适应。当没有内容时默认显示 3 行,当有内容时根据内容动态调整高度。

2025-04-04 02:11:19 371

原创 Vue父组件调用子组件设置table表格合并

2. 确定要修改的列;3. 设置行合并判断条件;4. 设置初始值,检查。父组件传函数到子组件,达到使用合并函数的办法。里的数据是否相同,修改统计变量实现合并。子组件 CreateTableComp。思路:1. 先获取表格的所有数据。

2025-04-03 11:30:15 242

原创 Vue 中 this.$emit(“update:xx“,value) 和 :xx.sync 实现同步数据的做法

在 Vue 2.x 中,和xx.sync都是用来实现父子组件之间的数据同步的方式,它们背后的工作原理有些相似,但语法上有所不同。让我们逐个详细解释这两者的使用方式。xx.syncxx.sync是 Vue 提供的一种语法糖,用来简化子组件和父组件之间数据同步的操作。它的工作原理是自动化地监听update:xx事件并更新父组件的数据。实际上,xx.sync是v-bind和v-on的组合,背后也调用了。

2025-04-02 19:52:30 459

原创 MySQL数据库中,tinyint(1) 和 tinyint 有什么区别

是 MySQL 中最小的整数类型,在 MySQL 8.0 及以后,没有任何区别,系统会忽略。在 MySQL 中,

2025-04-01 21:17:17 617

原创 Vue项目中Vuex在util引入,断点存在default

时,导入的其实是这个 Store 实例,而。导出整个 Store 实例。是合法的访问方式,无需通过。,即使你在代码中看到的是。已经是解引用后的对象。是它的一个直接属性。

2025-03-31 22:02:53 407

原创 localStorage和vuex-persistedstate 插件推荐哪个

选:省时省力,适合大多数项目。选:仅当项目非常简单或需要精细控制存储逻辑时。敏感数据:结合后端(Cookie)或前端加密存储。

2025-03-25 00:29:37 339

原创 开发中后端返回下划线数据,要不要统一转驼峰?

【代码】开发中后端返回下划线数据,要不要统一转驼峰?

2025-03-24 16:39:25 615

原创 Podman 学习总结

Podman()是一个开源的容器管理工具类似于 Docker,可以用于拉取、运行、管理容器镜像。Podman 采用无守护进程的架构,使其更加安全和轻量级,适用于多种容器化场景。兼容方式说明让 Podman 兼容 Docker 命令,减少学习成本兼容 Docker CLI & Composepodman命令格式与 Docker 兼容,并支持直接将 Podman 容器转换为 Kubernetes 资源迁移 Docker 镜像/容器使用和进行迁移Podman 在生产环境中的应用Podman作为。

2025-03-24 11:19:47 961

原创 JavaScript 中 “new Map()”的使用

new Map()是 JavaScript 中用于创建的构造函数。Map是一种键值对集合,类似于普通对象(Object。

2025-03-22 19:59:59 661

Royal TSX 是一款跨平台的远程桌面和连接管理工具,专为 macOS 设计 它主要用于管理和连接到不同类型的远程计算机和服务

Royal TSX 是一款跨平台的远程桌面和连接管理工具,专为 macOS 设计。它主要用于管理和连接到不同类型的远程计算机和服务,包括 Windows、Linux、SSH、RDP(远程桌面协议)、VNC 等。Royal TSX 支持多种远程访问协议,可以帮助 IT 管理员、开发者和技术支持人员高效地管理多个远程主机、虚拟机、设备和云服务器。

2024-12-31

极米投影仪免费看电视,已测试

极米投影仪免费看电视,已测试

2024-12-14

Chromium 浏览器

Chromium 浏览器

2024-06-30

Selenium-IDE 插件

Selenium IDE 是一个浏览器插件,可用于 Firefox 和 Chrome 浏览器。它提供了一个集成开发环境(IDE),用于记录、编辑和调试自动化测试脚本。 通过安装 Selenium IDE 插件,用户可以在支持的浏览器中直接使用它。一旦安装完成,用户可以在浏览器中打开 Selenium IDE,并开始录制他们在网页上的操作。这些操作包括点击链接、填写表单、选择下拉菜单等。 除了录制功能外,Selenium IDE 还提供了编辑和调试测试脚本的功能。用户可以编辑已录制的操作,添加断言、等待命令等,以及执行测试脚本并查看结果。 Selenium IDE 插件使得创建简单的自动化测试脚本变得非常容易,但对于更复杂的测试场景,可能需要使用 Selenium WebDriver 或其他 Selenium 工具进行更灵活、稳健的测试自动化。

2024-05-14

百度编辑器后端服务配置demo

百度编辑器后端服务配置demo

2023-03-22

解决Vue使用UEditor百度编辑器,上传图片服务配置问题(源码)

轻松解决百度编辑器上传图片

2023-01-05

element离线手册2.15.8版本

element离线手册2.15.8版本,离线使用,简单易用。

2022-05-16

Vue主题切换源代码 vue-topic-switching

Vue 主题切换

2022-03-06

excel-style-demo.rar

vue excel-style导出表格样式 demo

2021-01-21

excel-style-demo2.rar

excel-style 表格导出样式demo

2021-01-21

electron-project.zip

Electron 项目开发及打包运行

2022-01-02

npm组件源码.zip

npm组件制作源代码下载

2021-12-01

python-file-name-checkout.rar

Python批量修改文件名,自制小工具

2021-12-04

vue xlsx表单导出

vue xlsx表单导出

2021-01-25

vuex-app.rar

Vuex 基本使用 demo 源码

2021-06-30

vuex-app2.rar

Vuex 模块源码

2021-06-30

xlsx导出excel示例(原示例代码)

xlsx导出excel示例(原示例代码)

2021-01-11

npm组件上传demo

npm-组件上传

2021-01-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除