Skip to content

后端架构 ​

依据main df87ca0,Node.js 22+、Fastify 5、PostgreSQL。服务分为app.js装配、routes参数与HTTP处理、services授权与事务、db连接池和数据库约束;server.js负责启动。接口细节见接口约定。

模块 ​

  • auth:邀请注册、双令牌会话、资料与密码、管理员账号及审计。
  • knowledge:公共知识点身份、版本、分类与前置关系。
  • lectures:讲义身份、完整版本快照、作者块/固定版本引用、协作者与上下架。
  • review:管理员审核知识点或完整讲义版本,事务中更新公开入口。
  • search:搜索公开知识点与讲义,目前为子串匹配。

旧courses/chapters/sections路由已移除。typst-to-json解析工具仍在仓库,但当前新公开接口没有调用它,也不返回旧doc AST。源码渲染由前端按新响应适配。

一致性 ​

草稿保存/提交锁定版本,核对edit_version;讲义目录以事务整树替换,行ID可能变化,客户端保留occurrence_id。数据库保护已提交内容不可修改、引用必须匹配已审核版本、公开指针必须指向本体已审核版本。审核记录不可修改删除,审核状态由触发器推进;操作审计异步写入,不能代替审核和内容历史。

分类与知识前置关系使用图写锁和递归检查防环。前置关系替换还锁定目标知识点,避免同一目标并发替换混合。约束存在不等于本轮已跑数据库并发验证。

schema.sql只用于空库初始化,不提供旧模型迁移或默认管理员密码。API参考列出当前接口及错误映射。