# ADR-001: 使用 Express 5 作为后端框架(Node.js) ## Status: Accepted (2026-08-26) ## Background 「备考中枢」是个人单用户公务员备考数据中枢,需要一组 REST API 对接 Vue3 前端,完成题库录入、刷题、错题本、模考、申论、备考计划、统计聚合。数据量级为个人(1-2 万题/年),无多租户、无高并发、无复杂分布式。用户已拍板后端用 Express。 ## Decision 采用 **Express 5.x(Node.js 24 LTS,ESM,全 TypeScript)** 作为后端框架。版本锚定: - Express `5.2.x`(已是 npm `latest` 默认线,要求 Node ≥ 18) - Node.js `24.x`(Active LTS) 选型理由: 1. 技术矩阵定位:Express 在 MVP 后端框架对比中「MVP 速度 5/5、性能 3/5」,正对本项目「简单 CRUD + 全栈 JS」场景(对照 `mvp-stack.md`)。 2. 生态成熟:129M 周下载、文档完善、中间件丰富、任意 Node 开发可秒上手,学习成本最低。 3. 与前端同用 TS/JS,全栈统一语言与类型系统,`packages/shared` 可共享领域类型。 4. 单用户低并发下性能完全够用(瓶颈在 JSON 数据层,非框架本身)。 ## Consequences - 正面:开发速度快、团队熟悉、生态成熟、部署极简(一个 Node 容器)。 - 负面:Express 5 无内置依赖注入、中间件顺序随代码增长需谨慎;性能不承诺高并发(个人场景无碍)。 - 权衡:Express 5 是 npm 默认线,新项目直接用;v4 已入 Maintenance(EOL ≥ 2026-10-01),不采用。 ## Related ADRs - ADR-003(本地 JSON 数据层) - ADR-004(全 TS strict + zod) - ADR-005(monorepo 布局) - ADR-006(垂直切片 + 单一契约源)