Files
wxserver/部署检查清单.md
T
yuming 3965e542fc
部署到群晖 / deploy (push) Failing after 6m22s
接入自建后端 + Gitea CI/CD
- 新增 server/:Node + Express + SQLite + node-cron 实现登录、纪念日 CRUD 和定时订阅消息推送
- 新增 .gitea/workflows/deploy.yml:推送即触发群晖 Docker 部署,监听 15002
- utils/api.js:自动按 envVersion 切换本地/线上 BASE_URL
- app.js 与 add-anniversary.js 移除 wx.cloud 调用,改走自建后端
- cloudfunctions/ 暂保留以便回滚
- 一并提交此前未入库的首页 / 设置页 / 日历 / 万年历等改造

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 15:44:09 +08:00

6.4 KiB
Raw Blame History

生日提醒小程序 - 云开发部署检查清单

部署前检查

1. 环境准备

  • 已注册微信小程序账号
  • 已获取 AppID
  • 已开通云开发(环境IDcloudbase-1gk3x0ia3a6b1f80
  • 已创建订阅消息模板(模板ID6J7Stt-lu7DKU6jblJ0nZGq_D81z5glnksf7qWfy5Yw

2. 代码检查

  • app.js 已初始化云开发
  • app.js 中的环境ID正确
  • add-anniversary.js 已添加订阅授权代码
  • add-anniversary.js 中的模板ID正确

📤 上传云函数

1. login 云函数

□ 右键点击 cloudfunctions/login
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传

2. syncAnniversary 云函数

□ 右键点击 cloudfunctions/syncAnniversary
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传

3. sendReminder 云函数

□ 右键点击 cloudfunctions/sendReminder
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传
□ 确认定时触发器已自动创建

验证: 云开发控制台 → 云函数,应该看到3个云函数:

  • login
  • syncAnniversary
  • sendReminder

🗄️ 创建数据库集合

1. anniversaries 集合

□ 进入云开发控制台 → 数据库
□ 点击"添加集合"
□ 集合名称:anniversaries
□ 权限设置:仅创建者可读写
□ 点击"确定"

2. remind_logs 集合

□ 点击"添加集合"
□ 集合名称:remind_logs
□ 权限设置:仅创建者可读写
□ 点击"确定"

验证: 云开发控制台 → 数据库,应该看到2个集合:

  • anniversaries
  • remind_logs

配置定时触发器

检查触发器

□ 进入云开发控制台 → 云函数 → sendReminder
□ 点击"触发器"标签
□ 确认存在 dailyReminder 触发器
□ 确认 Cron 表达式为:0 0 9 * * * *

如果没有触发器,手动创建

□ 点击"新建触发器"
□ 触发器名称:dailyReminder
□ 触发周期:自定义
□ Cron表达式:0 0 9 * * * *
□ 点击"确定"

🧪 功能测试

1. 测试 openid 获取

□ 打开小程序
□ 查看控制台日志
□ 应该看到:"获取openid成功: oABC..."
□ 打开"存储" → 查看 Storage
□ 应该看到 openid 已保存

2. 测试订阅消息授权

□ 在真机上打开小程序(必须真机)
□ 点击"添加纪念日"
□ 填写表单,开启"是否提醒"
□ 点击"保存"
□ 应该弹出订阅消息授权弹窗
□ 点击"允许"
□ 应该显示"添加成功"

3. 测试数据同步

□ 进入云开发控制台 → 数据库 → anniversaries
□ 应该看到刚才添加的纪念日记录
□ 记录中包含 _openid 字段
□ 数据完整无误

4. 测试云函数

□ 进入云开发控制台 → 云函数 → sendReminder
□ 点击"测试"
□ 输入参数:{}
□ 点击"运行测试"
□ 查看返回结果,应该包含:
  {
    "success": true,
    "total": 数字,
    "successCount": 数字,
    "failCount": 数字
  }

5. 测试订阅消息发送

方法1:等待定时触发

□ 添加一个明天的生日,提前1天提醒
□ 等到明天上午9:00
□ 应该收到订阅消息推送

方法2:手动触发(推荐)

□ 添加一个今天的生日
□ 手动执行 sendReminder 云函数
□ 应该立即收到订阅消息推送

方法3:修改定时器(快速测试)

□ 临时修改 Cron 为:0 */1 * * * * *
□ 等待1分钟
□ 应该收到订阅消息推送
□ 测试完成后改回:0 0 9 * * * *

🔍 验证清单

控制台日志验证

□ 看到:"云开发初始化成功"
□ 看到:"获取openid成功"
□ 看到:"订阅消息授权结果"
□ 看到:"云端同步成功"

数据库验证

□ anniversaries 集合有数据
□ 数据包含 _openid 字段
□ remindEnabled 为 true
□ personName 字段正确

提醒日志验证

□ remind_logs 集合有记录
□ status 为 "success"
□ sendDate 为今天
□ personName 正确

订阅消息验证

□ 收到了微信服务通知
□ 消息内容正确
□ 称呼、日期、提示都显示正确
□ 点击消息能跳转到小程序

🐛 故障排查

问题1:收不到订阅消息

检查步骤

□ 确认用户已授权订阅
□ 确认 openid 已保存
□ 查看 sendReminder 云函数日志
□ 查看 remind_logs 是否有 failed 记录
□ 确认模板ID正确
□ 确认云函数权限包含 subscribeMessage.send

问题2:云函数执行失败

检查步骤

□ 查看云函数日志,查找错误信息
□ 确认依赖已安装(查看 node_modules
□ 确认 config.json 配置正确
□ 尝试重新上传云函数

问题3:数据没有同步到云端

检查步骤

□ 确认 openid 已获取
□ 查看控制台是否有错误
□ 确认 syncAnniversary 云函数已上传
□ 手动测试 syncAnniversary 云函数

问题4:定时触发器不工作

检查步骤

□ 确认触发器已创建
□ 确认 Cron 表达式正确
□ 查看云函数日志,确认有定时调用记录
□ 尝试手动触发云函数验证功能

📊 性能监控

每日检查(可选)

□ 查看云函数调用次数
□ 查看订阅消息发送成功率
□ 查看 remind_logs 记录
□ 查看是否有异常日志

每周检查(可选)

□ 导出数据库备份
□ 清理过期的 remind_logs(可选)
□ 查看云开发资源使用情况

部署完成确认

全部完成以下项目即表示部署成功:

  • 3个云函数全部上传成功
  • 2个数据库集合创建成功
  • 定时触发器配置成功
  • 能够获取用户 openid
  • 订阅消息授权正常弹出
  • 数据能够同步到云端
  • 手动执行云函数成功
  • 能够收到订阅消息推送
  • 提醒日志正常记录

🎉 恭喜部署成功!

你的生日提醒小程序现在具备:

  • 云端数据存储
  • 自动推送提醒
  • 多设备同步
  • 安全可靠

开始使用吧! 🎂


📞 需要帮助?

如果遇到问题:

  1. 查看《云开发部署指南.md》
  2. 查看《云开发功能说明.md》
  3. 查看云开发控制台的错误日志
  4. 联系技术支持