罗汉到家:后端技术栈、架构与后续规划
罗汉到家后端技术栈、架构与后续规划文档版本2026-09-23。项目是可在线演示的上门按摩 O2O 全栈 MVP不是纯前端 Mock。生产数据由腾讯云 CloudBase 云函数与 PostgreSQL 持久化本地保留 Express Prisma SQLite 作为类型更完整、便于调试的开发后端。1. 系统目标与边界后端承担账号、技师、服务、档期、订单、履约、评价、积分及经营管理八类核心能力。当前目标是让面试官能用用户、技师、管理员三种身份完成可信业务闭环同时保持小体量免费部署。HTTPS JSON /api本地开发React 用户端 / 技师端 / 管理端CloudBase Node.js HTTP 云函数JWT RBAC 会话版本CloudBase PostgreSQLExpress 5 TypeScriptPrisma ORMSQLite前端只依赖统一 REST 契约因此可在不改页面业务逻辑的情况下切换线上云函数与本地 Express。线上方案降低常驻服务器费用本地方案提供 Prisma 数据模型、类型检查和快速联调体验。2. 技术栈层级技术用途与选择原因线上运行时Tencent CloudBase、Node.js 20国内访问友好HTTP 云函数按请求运行适合免费演示线上数据库CloudBase PostgreSQL多账号共享、关系查询和持久化经营数据本地 APIExpress 5、TypeScript路由与领域模块清晰便于类型检查和后续拆分本地数据访问Prisma 6、SQLite声明式模型、关系查询、迁移无需额外安装数据库输入校验Zod 云函数等价校验拒绝非法手机号、价格、排班、服务和状态输入身份认证JWT HS256无状态鉴权适合云函数令牌有效期 7 天密码安全crypto.scrypt 随机盐数据库不存明文密码恒定时间比较哈希权限控制RBACUSER、TECHNICIAN、ADMIN 三种角色由服务端隔离Web 安全Helmet、CORS 白名单、Body 限制降低常见响应头、跨域和大请求风险自动化验证TypeScript、Puppeteer、Node 脚本覆盖构建、按钮反馈、角色空间、账号隔离和改密部署CloudBase CLI、Surge云函数/数据库与静态前端分离当前可维持免费额度3. 后端模块server/src/ ├─ middleware/ JWT 鉴权、角色授权、错误处理 ├─ modules/ │ ├─ auth/ 注册、登录、修改密码 │ ├─ technicians/ 技师列表、详情、独立档期 │ ├─ orders/ 下单、取消、状态机、评价 │ ├─ profile/ 用户资料、地址、偏好、收藏、积分 │ ├─ technician-workbench/ 技师订单与履约推进 │ └─ admin/ 看板、订单、用户、技师、服务管理 └─ shared/ 数据库、密码、会话版本、统一错误线上cloudfunctions/luohan-api/实现相同接口index.js负责公共、认证和用户资料路由其余按管理端、订单、技师工作台拆分。两套实现共享业务契约避免前端为部署环境维护两套逻辑。4. 数据模型实体关键数据关系/用途User手机号、姓名、角色、密码哈希、积分、偏好登录主体可关联技师档案或用户订单Technician头像、职称、位置、评分、经验、排班、上下线/归档公开技师资料与工作台主体Service名称、说明、价格、时长、上下架平台可配置服务目录TechnicianServicetechnicianId、serviceId技师与服务多对多关系Order用户、技师、服务、预约时间、地址、金额、状态交易与履约主记录OrderStatusLogorderId、status、createdAt订单状态审计轨迹FavoriteuserId、technicianId每个用户独立收藏关系PointRecorduserId、变动值、原因积分账本避免只保存余额AuditLog操作人、动作、目标、元数据管理员关键操作留痕用户地址目前与偏好一起以 JSON 存储在User.preferences这是免费 MVP 的兼容性取舍进入商用阶段后会拆为 Address 表并增加默认地址约束。5. 认证、会话和权限注册或登录后签发 JWT载荷包括{sub:用户 ID,role:USER,ver:密码哈希指纹,exp:0}ver是密码哈希的不可逆短指纹。每次受保护请求都会读取当前用户并比较指纹因此用户修改密码或管理员重置技师密码后所有旧令牌立即失效无需增加收费缓存或修改数据库结构。前端改密成功后主动退出并要求使用新密码重新登录。权限边界USER只读写自己的资料、地址、收藏、订单和评价。TECHNICIAN只能读取分配给自己的订单并按状态机推进履约。ADMIN读取经营聚合管理订单、用户、服务、技师档案和账号。新建技师时同步创建工作台账号。历史未绑定档案可在管理端填写手机号和初始密码完成绑定手机号全局唯一。公共面试演示账号禁止改密或被重置避免后续访问者无法登录。6. 核心业务规则6.1 档期与下单每个技师拥有独立的workDays、workStart、workEnd。可预约性依次校验技师/服务有效、技师提供该服务、日期在开放范围、北京时间尚未过去、属于该技师排班、同一技师同一时间没有未取消订单。冲突查询始终包含technicianId所以 A 技师 20:00 被预约不会占用 B 技师 20:00。前端用于即时提示后端保留最终校验防止绕过页面提交。6.2 订单状态机待接单 → 已接单 → 已出发 → 已到达 → 服务中 → 已完成 └──────── 可取消的终止状态状态不能任意跳跃。到达时记录准时数据完成后写入用户积分及积分流水。订单管理可按订单号、用户、手机号、技师和状态筛选并展示下单时间与预约时间。6.3 评价、指标与归档已完成订单仅可评价一次评价结果落库并重新计算技师评分。准时率初始为 100%之后按真实到达记录计算从业经验由管理员依据资质填写。技师“删除”采用软归档保留历史订单有进行中订单时拒绝归档。7. 主要 API方法路径权限用途POST/api/auth/register公开用户注册POST/api/auth/login公开密码/演示验证码登录GET/api/auth/me已登录校验会话并返回当前账号PUT/api/auth/password已登录修改密码并使旧会话失效GET/api/technicians/:id/availability公开获取该技师排班和占用时段POST/api/ordersUSER创建订单POST/api/orders/:id/reviewUSER提交完成订单评价GET/api/admin/dashboardADMIN经营看板聚合POST/api/admin/techniciansADMIN新建技师及登录账号POST/api/admin/technicians/:id/bind-accountADMIN为旧档案绑定账号POST/api/admin/technicians/:id/reset-passwordADMIN重置技师密码并注销旧会话DELETE/api/admin/technicians/:idADMIN软归档技师成功统一返回{ data: ... }失败统一返回{ error: { code: ..., message: ... } }便于前端集中处理反馈。8. 部署、配置与测试生产链路Surge 静态前端 → CloudBase HTTP 云函数 → CloudBase PostgreSQL。本地链路Vite → Express → Prisma → SQLite。仓库仅提交.env.exampleJWT 密钥、CloudBase API Key、数据库连接等真实配置不进入 Git。生产 CORS 只允许正式前端域名。常用检查npmrun buildnpmrun check:role-workspacesnodescripts/check-account-isolation.mjsnodescripts/check-account-workflows.mjsnodescripts/check-password-change.mjs自动化覆盖账号资料隔离、收藏隔离、技师工作台身份、地址持久化、评价、管理员重置密码以及改密后旧令牌失效。线上写测试会恢复临时密码避免污染演示账号。9. 当前取舍和风险固定验证码仅用于公开演示不发送真实短信正式产品必须接入验证码过期、频率限制和风控。技师头像当前压缩至 100 KB 后随记录保存规模扩大应迁移到对象存储与 CDN。支付、聊天、定位移动属于交互演示没有真实资金回调和持续位置通道。云函数版本以应用层查询防止档期冲突高并发下应增加数据库唯一约束与事务重试。本地与云端存在双实现维护成本接口契约必须通过回归脚本保持一致。当前访问令牌 7 天有效且改密可整体失效但没有多设备会话列表和单设备退出。10. 后续规划P0面试演示稳定性当前阶段保持三角色主流程、账号隔离、档期、订单状态、评价与管理端全链路可回归。增加云函数错误告警、数据库备份说明和部署后烟雾测试。为关键写操作增加请求幂等键避免弱网重复下单。P1小规模真实运营将 Address、Review 拆为独立表支持评价文本、标签、申诉与管理端审核。头像迁移至对象存储接入受限短信、支付沙箱、消息通知和退款状态。引入短效 Access Token Refresh Token、设备会话管理、登录限流和异常登录记录。增加管理员审计日志页面、细粒度权限、数据导出和敏感字段脱敏。完善订单并发事务、超时自动取消、技师请假/停排和服务时长占用。P2规模化与可靠性Redis 缓存和分布式锁、消息队列处理通知/积分/统计WebSocket 或推送承载实时状态。可观测性结构化日志、链路追踪、指标、告警与错误聚合。PostgreSQL 高可用、自动备份与恢复演练读写热点索引和慢查询治理。CI/CD 执行类型、单元、集成、E2E、安全扫描和分阶段发布。完成隐私协议、数据最小化、账号注销、数据保留和支付/定位合规评审。11. 补充项目亮点不是堆叠技术名称而是把真实业务规则落到服务端三角色权限不能靠隐藏按钮收藏和订单按账号隔离技师档期独立状态推进有约束评价、积分、准时率来源可追溯技师用归档保留历史改密会注销旧会话线上共享数据与本地工程化后端保持同一接口。后续规划说明了当前免费 MVP 的取舍以及如何按业务增长逐步演进而不是一开始过度设计。

相关新闻

Aider自定义API接入指南:终端AI编程与OpenAI兼容模型配置实战

Aider自定义API接入指南:终端AI编程与OpenAI兼容模型配置实战

干这一行时间久了,你会发现真正拉开效率差距的不是手速,而是“改哪里、怎么改”的决策链路有多短。Aider就是在这个痛点里冒出来的工具,一个跑在终端里的AI配对编程助手,不靠IDE插件弹窗,而是在命令行里直接让模型读代…

2026/9/24 21:11:15 阅读更多 →
远程控制电脑全攻略:五大方案对比与跨平台实测

远程控制电脑全攻略:五大方案对比与跨平台实测

远程控制电脑这件事,平时想不起来,一想起就是急事:家里爸妈电脑又弹了一堆窗口,公司电脑还放着没保存的文档,人已经走在路上;或者是实验室里编译到一半,突然被叫走。我这次把市面上最常被问到的…

2026/9/24 21:11:15 阅读更多 →
普朗克尺度:宇宙的元规则与量子引力理论的分水岭

普朗克尺度:宇宙的元规则与量子引力理论的分水岭

在物理学界前沿工作这么久,我一直有一个感觉:大多数人对“创世”的理解还停留在宇宙大爆炸早期的膨胀和粒子汤,很少有人意识到,真正卡住所有理论的关卡,是那一个极其微小的尺度——普朗克尺度。圈量子引力的创始人之一…

2026/9/24 21:10:14 阅读更多 →

最新新闻

Ekko Studio docx Skill 源码级解析:Word 修订(Tracked Changes)与批注(Comments)的 WordprocessingML 处理

Ekko Studio docx Skill 源码级解析:Word 修订(Tracked Changes)与批注(Comments)的 WordprocessingML 处理

AI 应用人工智能AI Agent本地部署前端后端工作流自动化 【免费下载链接】ekko-studio Ekko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web. 项目地址: https://gitcode.com/gh_mirr…

2026/9/24 22:02:05 阅读更多 →
Java Swing 黄金矿工小游戏:抓钩状态机与碰撞检测实战

Java Swing 黄金矿工小游戏:抓钩状态机与碰撞检测实战

简介:这是一份基于Java实现的黄金矿工小游戏完整源码包,面向Java初学者、课程设计学生以及想通过经典小游戏练手的开发者,帮助读者理解Swing图形界面、游戏循环、碰撞检测与资源加载等核心机制。压缩包共30个文件,约141KB&#xf…

2026/9/24 22:02:05 阅读更多 →
体育馆场地预约系统开发实战:微信小程序+Django+Flask架构解析

体育馆场地预约系统开发实战:微信小程序+Django+Flask架构解析

体育馆场地预约平台开发手记:从电话排队到小程序一键订场做体育馆场地预约系统,最早是因为一个朋友在高校体育部上班,天天被电话轰炸:羽毛球场地有没有?今晚七点的场子被人占了能不能调?隔壁单位想包场怎么…

2026/9/24 22:02:05 阅读更多 →
GPT-Live-1+Agora构建AI会议助手实战指南

GPT-Live-1+Agora构建AI会议助手实战指南

1. 这不是“又一个AI聊天框”,而是一个能真正坐在会议室里干活的数字同事GPT‑Live‑1 Agora 实战教程:做一个能参会、操作看板的 AI 助手——这个标题里藏着三个被多数人忽略的关键动作:“能参会”、“操作看板”、“实战教程”。它不讲大模…

2026/9/24 22:02:05 阅读更多 →
全栈AI修图Agent实战:从架构设计到模型调度与踩坑记录

全栈AI修图Agent实战:从架构设计到模型调度与踩坑记录

“又一个新项目完结”——这句话说出口的时候,我终于能把“全栈 AI 修图 Agent”从待办列表里划掉了。这个项目从立项到交付,前后差不多一个多月,期间推翻过一版架构,也踩了不少模型和前后端的坑。如果你最近也在折腾 AI 全栈项目…

2026/9/24 22:02:05 阅读更多 →
如何挑选靠谱的AI创业项目机构?资源评估与避坑实操指南

如何挑选靠谱的AI创业项目机构?资源评估与避坑实操指南

想找靠谱的AI人工智能创业项目机构,我建议你先把“找机构”这三个字放一放。过去两年我陪不少团队聊过孵化器、加速器、产业平台,见过真给资源的,也见过把“AI”当挂件的。这篇文章不吹不黑,聊聊什么样的AI创业机构值得进、怎么判…

2026/9/24 22:01:05 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →