自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轻风细雨_林木木

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

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

原创 使用 Buffer.from(file.originalname, ‘latin1‘).toString(‘utf8‘) 以后不出现乱码是为什么?

中文文件名上传乱码的解决方案:当使用multipart/form-data上传文件时,文件名可能被错误地用Latin1编码解析导致乱码。通过Buffer.from(file.originalname, 'latin1').toString('utf8')可手动纠正编码:先将乱码字符串按Latin1还原为原始字节,再用UTF-8正确解码。该方法适用于处理multer等中间件接收中文文件名时出现的"文件"类乱码问题,有效恢复原始文件名如"文件.txt"。最佳实践建

2025-06-20 16:27:32 334

原创 GitHub Copilot 配置快捷键

你可以在 VS Code 中自定义 GitHub Copilot 的快捷键:(macOS)输入,点击进入。copilot设置快捷键。

2025-06-20 16:18:55 588

原创 GitHub Copilot 是什么,怎么使用

GitHub Copilot是由GitHub与OpenAI联合开发的AI编程助手,能自动补全代码、根据注释生成代码、提供API参考用法等。支持Python、JavaScript等多种主流语言,可在VS Code、JetBrains等主流IDE中使用。提供30天免费试用,个人版年费100美元。该工具能显著提升编程效率,例如输入注释即可自动生成斐波那契数列函数代码。

2025-06-20 16:01:33 523

原创 Mysql数据库实现外键约束(Foreign Key Constraint),防止“孤儿数据”

摘要: files 表通过外键约束 files.folder_id 关联 folders.id,确保文件必须属于有效目录。外键强制数据一致性,防止无效引用,如删除目录时通过 ON DELETE CASCADE 自动删除关联文件。可通过 SHOW CREATE TABLE files 查看外键定义,其结构包含字段(如文件名、大小、上传时间)、索引及表配置(InnoDB引擎、UTF8mb4字符集)。外键约束既保障数据完整性,也需操作时验证目录存在性。

2025-06-20 11:00:01 817

原创 Express 中用于返回响应的两种常用方法 res.status(200).json() 和 res.status(200).send()

在 Express 中,res.json() 和 res.send() 的区别主要在于响应格式和数据类型处理。res.json() 会自动设置 Content-Type 为 JSON 并转换数据为 JSON 格式,适合 API 响应;而 res.send() 可返回任意类型数据(文本/HTML/Buffer),适合非结构化响应。建议 API 统一使用 res.json() 返回 JSON 数据,需要返回 HTML 或纯文本时使用 res.send()。两种方法都能返回对象,但 res.json() 更为可靠

2025-06-20 10:32:49 259

原创 Mysql2/promise 返回,await 使用总结

本文介绍了MySQL查询操作的不同返回结构: SELECT返回数组[rows, fields],其中rows是记录数组 INSERT返回插入结果对象,包含affectedRows和insertId等字段 UPDATE返回更新结果,重点关注affectedRows和changedRows DELETE返回删除结果,主要查看affectedRows 特别注意:必须使用数组解构[result]获取操作结果,直接解构对象会导致错误。

2025-06-19 22:20:17 384

原创 Cursor开发工具Prettier格式插件配置

这篇JSON配置文件摘要了VS Code编辑器及相关插件的个性化设置,主要包括:Tabnine AI补全的实验性自动导入、文件类型关联映射、Emmet扩展支持、Git自动拉取、编辑器缩进格式(2空格)、Prettier格式化规则(单引号/不换行/保留分号)、代码迷你地图启用等优化配置,同时关闭了部分插件的自动功能和提示信息。这些设置共同优化了开发环境的代码编辑、格式化和版本控制体验。

2025-06-19 13:16:36 225

原创 Cursor添加Prettier插件格式化vue代码

Prettier代码格式化配置指南 摘要:本文详细介绍了Prettier代码格式化工具的使用方法,重点说明了如何通过VS Code配置实现"一行显示"的特殊格式化效果。内容包括:1) Prettier插件安装步骤;2) 关键配置参数说明,特别是通过设置超长printWidth(10000)实现代码强制单行显示;3) 其他常用Prettier选项如单引号、无分号、无尾逗号等设置。文中还附带了完整的配置示例和详细注释,帮助开发者理解每个参数的作用。

2025-06-18 07:42:51 669

原创 使用 Unicode 图标显示什么时候推荐,什么时候不推荐

在代码中使用Unicode图标(如📄📋)是可行的,但适用性因项目而异: ✅ 推荐场景: 小型/个人项目:直观快捷,无需额外资源。 移动端/Web页面:兼容性好,避免图标库依赖。 ⚠️ 谨慎使用: 企业级项目:不同系统/浏览器显示可能不一致。 定制化UI:无法控制颜色和风格统一。 📌 建议: 小型项目直接使用Unicode图标,商业项目推荐iconfont/SVG方案,动态场景可用JS映射管理(如Vue示例)。

2025-06-16 08:42:51 430

原创 图表工具 ECharts vs Chart.js 对比

ECharts和Chart.js是两大主流前端图表库,各具特色。ECharts由百度开发,提供丰富图表类型(含地图和复杂交互),适合大数据量和企业级应用,但配置较复杂;Chart.js社区驱动,轻量易用,适合简单图表和快速开发。在Vue项目中,两者均有专用封装(vue-echarts/vue-chartjs)。选择建议:复杂可视化用ECharts,轻量需求选Chart.js。

2025-06-14 11:13:18 691

原创 不同的数据库操作方式: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 927

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

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

2025-06-02 00:39:30 497

原创 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 548

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

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

2025-06-01 23:18:27 348

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

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

2025-06-01 23:05:26 1123

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

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

2025-06-01 16:05:54 3090

原创 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 912

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

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

2025-05-27 11:56:47 310

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

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

2025-05-27 11:43:16 408

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

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

2025-05-18 19:15:08 454

原创 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 401

原创 Flowbite 和 daisyUI 那个好用?

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

2025-05-17 15:29:48 866

原创 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 801

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

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

2025-05-04 00:22:12 476

原创 Nginx搭建test服务器

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

2025-05-02 18:57:07 817

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

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

2025-04-30 15:50:43 1220

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

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

2025-04-28 18:19:14 480

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

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

2025-04-24 18:49:56 821

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

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

2025-04-23 11:02:50 312

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

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

2025-04-20 01:26:58 211

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

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

2025-04-20 01:23:55 376

原创 JSAPI支付和小程序支付

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

2025-04-20 01:02:22 592

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

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

2025-04-19 13:48:57 582

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

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

2025-04-18 00:35:19 689

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

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

2025-04-17 18:59:23 469

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

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

2025-04-16 15:46:52 598

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

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

2025-04-16 10:05:22 376

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

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

2025-04-15 22:04:44 301

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

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

2025-04-15 13:33:05 1437

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

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

2025-04-13 14:18:50 984

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关注的人

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