洁邻管家是一款同城家政服务预约微信小程序,核心功能包括:
- 微信一键登录:基于 wx.login 获取 openid,后端签发 JWT
Token,实现无感知授权登录
- 服务分类浏览:首页展示保洁、家电清洗、管道疏通等服务分类卡片,直观呈现
起步价格
- 快速预约下单:选择服务分类后,填写上门地址、预约时间、联系人信息,3
分钟内完成下单
- 订单全流程跟踪:我的订单列表支持分页查询与状态筛选;订单详情页展示技师
信息及状态时间轴(待服务 → 进行中 → 已完成)
- 地址管理:支持新增、编辑、删除常用地址,一键设为默认,下单时快速选择
-
服务评价与取消:已完成订单可打分+文字评价;待服务状态下用户可主动取消订单
项目采用微信小程序原生框架 + Express.js + SQLite
架构,开发中遇到的主要技术难点及解决方案:
- 微信登录与 JWT 鉴权链路:小程序 wx.login 获取的 code 需与后端交互换取
openid,涉及鉴权中间件设计与 Token 刷新机制。方案:后端封装
authMiddleware 统一校验 Bearer Token,登录接口返回 JWT,前端
utils/auth.js 集中管理 token 存取
- 订单状态机校验:订单存在待服务/进行中/已完成/已取消四种状态,需防止非法
流转(如已完成不可取消)。方案:后端 PUT /orders/:id/status
接口内置状态转换规则表,非法请求直接返回 40001
- 前后端跨域与接口联调:小程序真机调试对 HTTPS 及域名白名单有要求,本地开
发需代理。方案:开发阶段使用微信开发者工具"不校验合法域名"模式,后端通过
CORS 中间件放行;部署阶段 Nginx 反向代理 + 腾讯云 HTTPS 域名
- SQLite 并发与数据一致性:SQLite 文件级锁在写并发高时易触发
SQLITE_BUSY。方案:采用 better-sqlite3 连接池模式,地址模块的"设为默认"操
作通过事务保证原子性,先取消其他默认地址再设置新的