2026-09-29 19:01:36 +08:00
|
|
|
|
# 卓米会小程序
|
|
|
|
|
|
|
|
|
|
|
|
微信原生小程序 + Node.js 后端(含管理后台)。
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
miniprogram/ 小程序(WXML / WXSS / JS),用微信开发者工具导入
|
|
|
|
|
|
server/ Express 后端 + 管理后台,数据存 server/data/db.json
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd server
|
|
|
|
|
|
npm install
|
|
|
|
|
|
npm start # http://localhost:3000,管理后台 /admin
|
|
|
|
|
|
npm test # 接口冒烟测试(使用临时数据库,不影响真实数据)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
1. 微信开发者工具导入 `miniprogram/`,详情 → 本地设置 → 勾选「不校验合法域名」。
|
|
|
|
|
|
2. 小程序请求地址在 `miniprogram/config.js`(默认 `http://127.0.0.1:3000`)。
|
|
|
|
|
|
3. 管理后台默认账号 `admin / 123456`,上线前务必在后台修改密码。
|
|
|
|
|
|
|
|
|
|
|
|
## 环境变量
|
|
|
|
|
|
|
|
|
|
|
|
| 变量 | 说明 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| `PORT` | 端口,默认 3000 |
|
|
|
|
|
|
| `WX_APPID` / `WX_SECRET` | 配置后走真实 `code2session` 登录;不配置则为演示登录 |
|
2026-10-08 13:06:43 +08:00
|
|
|
|
| `WX_SUBSCRIBE_TMPL_ID` | 可选,订阅消息模板 ID(也可在管理后台「提醒设置」里填) |
|
|
|
|
|
|
| `WX_MINI_STATE` | 订阅消息跳转版本:`formal` / `trial` / `developer`,默认 formal |
|
2026-09-29 19:01:36 +08:00
|
|
|
|
| `DB_FILE` | 数据文件路径,默认 `server/data/db.json` |
|
|
|
|
|
|
| `UPLOAD_DIR` | 上传目录,默认 `server/public/uploads` |
|
|
|
|
|
|
|
|
|
|
|
|
## 功能对照
|
|
|
|
|
|
|
|
|
|
|
|
- **可转发**:活动页 `onShareAppMessage` 分享到详情页,链接带分享人 openid,报名时记录来源。
|
|
|
|
|
|
- **可编辑**:后台增删改活动(含往期、置顶、封面图、视频)、海报、报名、签到码。
|
|
|
|
|
|
- **可数据统计**:后台「数据统计」看报名/签到/分享来源,报名可导出 CSV。
|
|
|
|
|
|
- **可微信登录**:`wx.login` → `/api/login` → `code2session`。
|
|
|
|
|
|
|
|
|
|
|
|
小程序管理员只在后台「管理员」页设置;管理员在「往期」页直接看到增加、删除、置顶,界面上没有管理员登录入口。
|
|
|
|
|
|
|
|
|
|
|
|
## 目录说明
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
server/
|
|
|
|
|
|
app.js Express 应用(路由挂载、静态资源、统一错误处理)
|
|
|
|
|
|
server.js 启动入口
|
|
|
|
|
|
routes/public.js 小程序接口 /api/*
|
|
|
|
|
|
routes/admin.js 管理后台接口 /api/admin/*
|
|
|
|
|
|
lib/db.js JSON 存储:内存缓存 + 原子写入 + 旧数据迁移
|
|
|
|
|
|
lib/auth.js 用户 / 管理员鉴权
|
|
|
|
|
|
lib/passwords.js 管理员密码 scrypt 哈希
|
|
|
|
|
|
lib/serialize.js 活动 / 用户数据整形
|
|
|
|
|
|
lib/upload.js 图片视频上传(multer)
|
|
|
|
|
|
lib/wechat.js code2session
|
|
|
|
|
|
public/admin.html 管理后台单页
|
|
|
|
|
|
miniprogram/
|
|
|
|
|
|
utils/api.js 所有接口封装(自动登录、token 过期自动重登)
|
|
|
|
|
|
utils/activity.js 导航、报名跳转、分享参数
|
|
|
|
|
|
components/activity-board 首页 / 详情页共用的活动卡片
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 上线前
|
|
|
|
|
|
|
|
|
|
|
|
- 服务器配置 HTTPS 域名,并在小程序后台添加 request / uploadFile / downloadFile 合法域名。
|
|
|
|
|
|
- 修改管理后台默认密码;数据量大时换成正式数据库。
|
|
|
|
|
|
- 在小程序后台填写《用户隐私保护指引》(昵称、头像、手机号、位置)。
|