自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(339)
  • 资源 (21)
  • 收藏
  • 关注

原创 node 微信小程序支付及通知

要在小程序里集成微信支付,小程序自身必须是通过微信认证的。从扫码进去,点击左侧菜单的微信认证。

2025-03-12 14:24:59 821

原创 node 微信小程序登录

做小程序开发之前,首先要申请账号。,可以进入,根据提示注册就好。

2025-03-12 13:49:42 725

原创 Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)

创建// 可以添加更多类型的统计查询。

2025-03-11 14:59:13 1127

原创 使用 Prettier 格式化代码(Node)

命令里,我们用了-D参数,这说明,它只需要在开发中使用。

2025-03-06 16:33:34 225

原创 Node 定时任务、排他锁、RabbitMQ 实现过期订单自动更新

那么这个42就是分钟了。大家先数一数,这里只有。放定时任务相关的文件。

2025-03-06 15:05:48 717

原创 数据库事务、乐观锁及悲观锁

在支付成功后,我们在自定义的里,依次更新了订单状态和用户信息。也就说这里先执行了更新订单表的SQL,接着又执行了更新用户表的SQL。但是大家想一想,有没有可能。订单表更新成功了,但因为某些原因导致用户表更新失败?比方说用户模型里,用户组的效验写掉了1,导致1存进不去。又或者大会员有效期计算错误,导致更新失败。这样就可能订单状态更新成已支付了,但用户却还是普通用户,或者大会员有效期没有增加,造成数据不一致。所以对于这种,连续执行多条SQL语句的操作,正确的做法是要加上事务。所谓数据库的事务。

2025-03-04 18:38:41 751

原创 解决Node (ORM) 部分种子文件中存在unique索引时 报错问题

【代码】解决Node (ORM) 部分镜像 内容字段为unique运行种子报错问题。

2025-03-03 16:27:03 146

原创 node支付宝支付及同步、异步通知、主动查询支付宝订单状态

在站点中集成支付宝,首先需要去开通。相关的流程比较繁琐,大家可以按照课程中的步骤,一点点去做好。应用公钥是传到支付宝网站上的。换来的支付宝公钥和转换了格式的-应用私钥,要保存到项目的环境变量里。支付宝支付,分为电脑网页和手机网页支付。两者显示的效果是不同的。在手机真机上支付,可以直接打开支付宝 App 进行付款。

2025-02-28 13:31:53 757

原创 订单管理设计( node ORM)

用户购买大会员,需设计订单表记录相关信息。

2025-02-27 15:37:51 625

原创 express 会员开发理论

项目里想加上收费的功能 , 以课程为例: 可以对部分课程的章节,作为收费项目。这里有两种做法,

2025-02-26 16:58:17 540

原创 express(node ORM) 使用 Winston 记录日志 及数据库保存日志

【代码】express(node ORM) 使用 Winston 记录日志 及数据库保存日志。

2025-02-25 15:05:31 369

原创 RabbitMQ 消息队列 优化发送邮件

所以,对于非常简单的功能,你确实可以不写await来达到异步的目的。但对于大型程序来说,为了有更好的性能,增加并发处理能力,提高错误处理的可靠性,使用消息队列是一个更好的选择。我要告诉大家,你想的一点也没错,这样做 100% 可以的。因为不等待异步执行的结果,如果发送邮件出现错误了,会。在实际开发之前,不妨先思考下,我们最终的目的是为了让邮件异步发送。你去访问其他接口,也是完全不受影响的。那么现在,我们就用非常简单的方式,实现了异步发送邮件了。的时候,相关的信息,就可以从环境变量读取。

2025-02-21 16:41:09 1065

原创 RabbitMQ 消息队列

但由于发送邮件,依赖于其他厂商的服务,有可能他们的接口会非常耗时。当用户注册成功了,我们就通知RabbitMQ,你去发个邮件,然后就直接提示用户注册成功。所以,生产者、消费者,都是我们要写的程序。但如果队列已经存在,那就直接使用,不会创建新的了。因为你知道,在将来的某个时候,你的信就会被寄到收件人手里。一共收到了一条信息,准备好的有几条,在内存中的又几条,占有了多少空间、多少内存什么的。将接收消息的终端重启一下,重新发送一次,可以看到收到信息了。这就错了,按道理消息被处理完成后,就不应该重复收到了。

2025-02-20 17:16:04 1223

原创 express 发送邮件

发送邮件,首先得有个发件箱。顾名思义,发件箱就是发送邮件的邮箱。大家可以用自己的 QQ 邮箱、网易 163 邮箱,由于网络原因,一些国外的邮箱,例如谷歌的Gmail等等,就不推荐使用了。上面部分是发件箱的配置,下面部分就是发送给谁,发送的内容是什么。看着不是很难,我们新建一个专门发送邮件的文件。使用阿里云的企业邮箱,这是商业项目最推荐的,因为发件箱的域名,可以和你的官网使用相同的域名。使用网易 163 邮箱,也需要获取授权码后再操作。.env.example中添加对应的说明。的官方文档里,有一个基础案例。

2025-02-19 16:39:18 567

原创 expres svg-captcha图形验证码功能

对于用户的注册、登录等敏感操作,或者是发送短信等其他消耗资源的操作上,最好加上验证码。生成验证码可以使用svg-captcha包。验证码,需要保存在Redis中,key的名字可以通过uuid生成唯一标识。生成验证码的接口,要返回captchaKey和captchaData。captchaKey是Redis中key的名字。captchaData是生成的svg图片。当用户提交验证码时,需要将接口返回的captchaKey,和用户填写的验证码内容,一起提交过来。

2025-02-19 15:29:37 393

原创 windows Redis Insight 如何查看宝塔docker里的redis数据

如果连接成功,窗口会变为空白,说明端口是开放且可访问的;如果连接失败,会显示类似 Could not open connection to the host, on port 6379: Connect failed 的错误信息,这可能意味着端口被防火墙阻止或者 Redis 服务本身存在问题。检查云服务器是否开放6379端口。telnet 公网地址 端口。

2025-02-17 16:44:25 386

原创 node 使用 Redis 缓存

如果数据发生改变了,就保存的数据删掉,重新保存最新的。的数据都存储在内存中,这样它的读写速度就非常快。而且还会将内存中的数据写入本地硬盘,可以在服务器重启后,自动将数据恢复到内存中。在数据库上我们可以做很多优化,例如优化 SQL 语句,优化索引,如果数据量大了,还可以分库、分表等等。它的功能非常强大,在我们这节课中,只会用到Redis的缓存能力。这样做好封装好后,用起来就非常简单了,而且就算是数组或对象,也可以顺利的存取了。高并发下,一个项目最先出问题的,并不是程序本身,而是数据库最先承受不住。

2025-02-17 15:09:40 874

原创 ERROR: Failed to create schema directory ‘clwy‘ (errno: 13 - Permission denied) 解决

2、若容器存在但已停止,启动容器。尝试进入容器并修改权限。1、确认容器是否存在。

2025-01-23 17:54:19 271

原创 Windows Docker Desktop安装及使用 Docker 运行 MySQL

Docker Desktop是Docker的官方桌面版,专为Mac和Windows用户设计,提供了一个简单易用的界面来管理和运行Docker容器。它集成了Docker引擎,为开发人员提供了一个快速、可靠、可扩展的方式来构建、运行和管理应用。。需要注意的是,。

2025-01-23 13:47:30 1651

原创 sequelize-cli 软删除 与多选删除、恢复 及多选批量恢复

在Sequelize里,实现软删除是非常容易的事情。数据库中要增加deletedAt字段,来记录当前文章是否被删除。模型里,要添加。现在再删除文章,就会变成软删除了。原理就是在deletedAt字段添加了个时间而已。在查的时候,我们只查deletedAt字段为空的记录。用户就以为数据被删掉了,其实并没有。要查询被软删除的记录,需要添加。从回收站恢复数据,可以用restore方法。要彻底删掉记录,可以在删除时,传递参数。还有一个值得思考的地方是,很多项目都有删除用户的功能。

2025-01-16 15:11:34 779

原创 宝塔自动备份数据库到阿里云 OSS

一步步点进去后,找到最终 SQL 文件,下载下来。解压缩后,预览一下,非常棒。完成后,去阿里云 OSS 刷新一下看看,可以看到自己的备份文件夹了。上面这些信息,在自己项目的.env文件中都有了,直接拿过来就好。EndPoint,可以去阿里云 OSS 的控制台中找到。当然,我们也不用等待凌晨 4:30 看它运行了,直接点击。,在里面将阿里云 OSS 相关数据填写进去。保存路径,我这里设定在/backup目录中。中所存储的文件,方便我们进行管理。,确定后,就能看到自己的数据库了。安装完成后,需要点击。

2025-01-15 15:15:14 977

原创 使用 Multer 上传图片到阿里云 OSS的两种方式

这样这张图片,要上传两次,会造成网络资源的浪费,增加服务器的开销。尤其是在访问量大的情况下,会对项目的稳定运行,造成很大的影响。使用这种方式,一张图片,先要上传到 Node 项目的服务器中,然后再由 Node 服务器上传到阿里云 OSS。可以看到这里的代码还是比较简单的,上面需要先做一个配置,然后调用方法就可以上传了。所以明智的选择,要用云存储,这里我们以阿里云的对象存储为例来学习如何实现上传。对应的缺点就是,在开发上,代码麻烦点。大家复制的时候,注意下,只要前面这一部分,后面的完整域名不需要。

2025-01-10 17:53:21 1344

原创 部署:使用 PM2 部署项目

域名要经过备案,并设置域名解析后,才能访问。生产环境要用PM2运行Node.js项目。PM2还有很多复杂的用法。可以在项目里生成专门的配置文件、可以用命令对PM2进行监控管理,还可以用命令实现自动化部署。这些内容就比较复杂了,大家有兴趣可以查看PM2的官方文档。我们这里为了让大家用最简单的办法部署好项目,就不演示这些了。配置好SSL证书后,站点就会从http变为https,从不安全变为安全。服务器上更新代码后,需要在宝塔的网站管理里,点击重启。一台服务器上,是可以部署多个项目的。

2025-01-09 16:32:57 964

原创 sequelize-cli 多对多关系处理 及某一单项游戏根据成绩降序排名

【代码】sequelize-cli 多对多关系处理 及某一单项游戏根据成绩降序排名。

2025-01-09 15:07:16 434

原创 部署:上传项目代码 & 配置数据库

上传代码,推荐使用Git Clone。或者用宝塔面板直接上传,但是不推荐。Linux上的npm包,有可能和Windows上不同。上传到服务器后,需要重新安装。生产环境,有自己的环境变量、秘钥和数据库配置。可以使用命令,创建生产环境的数据库、表和数据。使用MySQL客户端,也可以远程管理服务器上的数据库。

2025-01-07 17:02:10 1240

原创 使用宝塔面板,安装 Nginx、MySQL 和 Node.js

为了简化Linux的操作难度,可以安装宝塔面板。需要在安全组里,添加端口后,才能访问对应的服务。服务器上运行Node.js项目,需要安装Node.js自身、Nginx和MySQL。我们这里演示的是阿里云,但不同厂商的配置会有一些区别。

2025-01-07 14:43:01 1366

原创 使用ssh远程链接服务器(阿里云 linux下)

如果我们服务器很多,每次使用SSH连接到服务器,都要去找 IP 地址,这样就非常麻烦了。可以看到服务器上的Linux,是没有桌面的。hk,是我自己取的名字,因为服务器在香港,所以就叫这个了。但是因为要收费,这里就不介绍了,大家可以自己尝试一下。打开密钥对存放目录后,在里面新建一个config文件,注意这个文件没有扩展名。等待服务器重启完成,现在再试试 SSH 连接,发现不需要输入密码了。新服务器买好后,要干的第一件事,就是更新系统上的软件包。服务器为了防止入侵,应当禁用密码登录,改为密钥登录。

2025-01-07 14:03:49 1799

原创 Sequelize ORM 现有表如何使用

明显也不符合默认关联字段的命名。没有关系,定义一个一对多关联,只需要用foreignKey定义一下,关联的字段叫什么名字就可以了。到这里为止,模型就全部改造完成了。我们添加个路由测试下,新建routes/posts.js。已经有了一张叫做xw_posts的表。表里的字段非常简单,大家可以自己建一下。我们的Post模型,它与是属于分类的。而且里面还缺少createdAt和updatedAt时间字段。里面关联分类表的字段是下划线命名,也不符合命名规范。这张表的命名显然是不符合Sequelize规范的。

2024-12-24 16:55:53 320

原创 sequelize-cli 封装登录接口

第三步:因为用户既可以用账号登录,也可以用邮箱登录。可以接收一个自定义的东西,就叫做login,无论发送的是邮箱还是账号,都用login来接受。我们可以自己在路由里写点判断,确定用户提交了邮箱、账号和密码,而且不为空。就要用一个叫做jwt的包,来生成token,也就是令牌。第四步:用接收到的这个login,来查询数据库,判断当前用户是否存在。无论是查询邮箱,还是查询账号,只要查到那就是存在。第六步:就算账号和密码都对得上,还要验证当前用户是不是管理员。第五步:如果找到当前用户了,再来比对密码是否正确。

2024-12-19 17:48:39 362

原创 sequelize-cli 关联表的使用

官网三个表:category 分类表 course课程表 user表在course.js中定义关联模型关联中引用的字段必须具有唯一性约束// 自定义外键})// 默认外键为userId在路由中使用attributes是用来指定从数据库表对应的模型中选取哪些字段(属性)出现在查询结果里的配置项exclude从查询结果中排除的字段include用于处理模型之间的关联关系查询model关联的模型as别名attributes同上述},}, {}],

2024-12-17 15:10:05 212

原创 node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用

timezone: ‘+08:00’ 这里是东八区,默认为0时区。sequelize model:generate:生成模型及其迁移。pool: { 使用连接池。bulkInsert(“表名”, 数据, {配置参数});dialect:这里可以改成任意一种关系型数据库。development:本地环境。username: 数据库用户名。production:线上环境。attributes:字段设置。password:数据库密码。database:数据库名。

2024-12-11 16:47:46 851

原创 快速搭建express

【代码】快速搭建express。

2024-12-11 13:50:19 274

原创 mycat2 分库分表

mycat2 分库分表 实在以下所有操作 在mycat 登录后执行。

2024-12-09 17:46:14 968

原创 mycat2读写分离配置

replicas:[“rwSepr”] 存放送机 (读的数据源)可以是多个 数组类型。masters:[“rwSepw”] 存放主机(写的数据源)可以是多个 数组类型。name: #rwSepw 默认最后一位区分读写 w r。url mysql的ip地址及真实mysql库名。name: prototype 集群名称。也可以不用注解的方式添加 自己手动添加。写入成功后 会多出相应的配置文件。targetName的参数。password 密码。写数据源 默认是主机。读数据源 默认是从机。

2024-12-09 15:43:40 413

原创 centos8 mycat 2.0安装及使用

安装可以通过绑定的资源下载也可以通过官网下载mycat2如果在windows下载 需传入centos8D:\BaiduNetdiskDownload\mycat2.zip 需要传入的文件目录root@192.168.245.132:/Admin/root 虚拟机账号名192.168.245.132 虚拟机iip地址/Admin/ 存放地址scp D:\BaiduNetdiskDownload\mycat2.zip root@192.168.245.132:/root/解

2024-12-04 16:05:03 401

原创 centos8 mysql 主从复制

1、修改配置文件 /etc/my.cnf2.重启MySQL服务器3、登录mysql,创建远程连接的账号,并授予主从复制权限hostname服务器名4、为’hostname’@‘%’ 用户分配主从复制权限5、通过指令,查看二进制日志坐标字段含义说明:file:从哪个日志文件开始推送日志文件position:从哪个位置开始推送日志binlog ignore db:指定不需要同步的数据库。

2024-12-04 15:09:43 465

原创 mysql游标及条件处理函数的使用

实例。

2024-11-28 17:08:11 281

原创 VMware安装CentOS 9 及mysql的安装

VMware安装CentOS9Linux下安装Mysql

2024-11-26 10:59:03 263

原创 joi常用验证

dataUri可以验证头像数据是否是base64格式的字符串。

2024-11-18 16:53:08 153

原创 express 从0-1如何创建一个项目 (注册登录接口)

目的:为了保证 路由模块 的纯粹性,所有的 路由处理函数 ,必须抽离到对应的 路由处理函数模块 中。2.在项目根目录中,新建 router_handler 文件夹,用来存放所有的 路由处理函数模块。目的:为了保证 路由模块 的纯粹性,所有的 校验函数 ,必须抽离到对应的 校验处理函数模块 中。1.在项目根目录中,新建 router 文件夹,用来存放所有的 路由 模块。路由模块中,只存放客户端的请求与处理函数之间的映射关系。路由处理函数模块中,专门负责存放每个路由对应的处理函数。1、对用户数据进行校验。

2024-11-15 13:09:21 1191

node ORM (sequelize)使用、查询、验证 及express 基础框架的搭建及实例的使用

node ORM (sequelize)使用、查询、验证 及express 基础框架的搭建及实例的使用

2024-12-12

centos8 mycat 2.0安装及使用

centos8 mycat 2.0安装及使用

2024-12-05

mycat 2.0安装及使用

mycat 2.0安装及使用

2024-12-04

express 基础框架搭建

express 基础框架搭建

2024-11-18

node 从0-1如何创建一个项目 注册接口

需要pnpm

2024-11-18

node 从0-1如何创建一个项目 注册接口

需要pnpm

2024-11-15

node 从0-1如何创建一个项目 注册接口

需要支持pnpm

2024-11-15

贴图工具贴图工具zip

贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴图工具zip贴图工具贴

2024-03-27

gif 截图工具gif 截图工具gif 截图工具gif 截图工具

gif 截图工具gif 截图工具gif 截图工具gif 截图工具gif 截图工具gif 截图工具

2022-06-28

省市区 --------------------------------json js

省市区 --------------------------------json js

2022-04-24

regionData.rar

三级联动专用

2021-12-16

贴图工具贴图工具.7z

贴图工具贴图工具贴图工具贴图工具贴图工具

2021-01-28

根据行政区编码渲染地图

根据行政区编码渲染地图根据行政区编码渲染地图根据行政区编码渲染地图根据行政区编码渲染地图根据行政区编码渲染地图根据行政区编码渲染地图

2021-01-14

正则表达式的封装正则表达式的封装

正则表达式的封装

2020-12-24

city-provinces.7z

省市边界经纬度

2020-12-17

科技感图片

科技感图片

2020-12-09

自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式

自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式自用css样式

2020-09-25

swiper-3.4.2.min.rar

swiper-3.4.2.min.rar

2020-09-20

基于element ui 的二次简单表格封装

基于element ui 的二次简单表格封装

2020-09-10

中国省市区

中国省市区有vue版

2020-09-08

多级菜单的图标添加及路由配置.rar

多级菜单的图标添加及路由配置.rar

2020-09-01

菜单联动

菜单联动

2020-08-28

vue api 配置文件(解决跨域)

vue api 配置文件

2020-08-27

音乐播放微信111app.rar

音乐播放微信111app.rar

2020-08-21

微信小程序音乐播放.rar

微信小程序音乐播放

2020-08-20

微信小程序vant引用 及api封装

小程序vant引用 及api封装

2020-08-13

微信小程序实现共享数据

等同于vue---state的小程序共享数据

2020-08-13

city.js 城市数据

方便导入城市数据

2020-08-04

area.js 省市区数据

用于前端的省市区的导入

2020-08-04

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

TA关注的人

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