# 后端 **Repository Path**: ai_sst/backend ## Basic Information - **Project Name**: 后端 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-14 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # requirement-server 轻量级需求与 SST 管理后端服务,基于 **Node.js + Express + SQLite** 构建,为前端 AI 需求分析应用提供数据持久化能力。 --- ## 技术栈 - **框架**:Express 4 - **数据库**:better-sqlite3(单文件 SQLite,零配置) - **日志**:morgan - **跨域**:cors --- ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 启动服务 ```bash npm start ``` 服务默认监听在 `http://127.0.0.1:8081`。 ### 灌入测试数据 ```bash npm run seed ``` 该命令会写入 2 条已创建需求 + 8 条草稿(product/design/solution)+ 2 条 SST 子任务,用于前端开发调试。 --- ## 数据库说明 数据库文件位于 `db/requirements.db`,采用 SQLite 单文件模式,便于本地开发和迁移。 ### 核心表 #### `requirements` — 需求/草稿主表 | 字段 | 说明 | | ---------------- | --------------------------------------------------------------------------- | | `id` | 主键(UUID) | | `user_id` | 用户标识 | | `session_id` | 关联的 OpenCode 会话 ID | | `space_id` | 业务空间 ID | | `title` | 需求标题 | | `description` | 需求描述 | | `status` | `clarifying` / `pending` / `adopted` / `rejected` / `cancelled` / `created` | | `priority` | 高 / 中 / 低 | | `score` | 完整度分数 | | `req_state` | JSON,结构化需求字段 | | `messages` | JSON,聊天记录(用于继续编辑) | | `tags` | JSON,标签数组 | | `draft_type` | `product` / `design` / `solution` | | `jira_no` | Jira 编号 | | `requirement_no` | 内部需求编号 | #### `sst_tasks` — SST 子任务表 | 字段 | 说明 | | ---------------- | ---------------------------------- | | `id` | 主键 | | `requirement_id` | 所属需求 ID(外键) | | `title` | 子任务标题 | | `description` | 描述 | | `content` | 详细内容 | | `status` | `pending` / `adopted` / `rejected` | | `jira_no` | Jira 编号 | --- ## API 接口清单 ### 健康检查 ``` GET /health ``` ### 需求草稿/列表 ``` GET /api/requirements/drafts?userId=xxx&draftType=product POST /api/requirements/drafts PUT /api/requirements/drafts/:id DELETE /api/requirements/drafts/:id ``` ### 已提交需求 ``` GET /api/requirements?userId=xxx&status=adopted,created GET /api/requirements/:id ``` ### 需求决策 ``` POST /api/requirements/:id/adopt { requirementNo?, jiraNo? } POST /api/requirements/:id/reject ``` ### SST 子任务 ``` GET /api/requirements/:id/sst POST /api/requirements/:id/sst/batch { sstList: [] } PUT /api/sst/:id DELETE /api/sst/:id ``` ### 兼容接口 ``` POST /api/requirements ``` 保留此接口用于前端现有的「向需求管理平台提交」逻辑,当前实现直接生成模拟需求号返回。 --- ## 与前端联调 前端 Vite 代理已配置好,无需修改: ```js // front/vite.config.js '/api/requirements': { target: 'http://127.0.0.1:8081', changeOrigin: true, } ``` 在 `front` 目录执行以下命令可同时启动前后端: ```bash cd /Users/changjianjia/workspace/front npm run start ``` 该命令通过 `concurrently` 并行启动: - 后端 `requirement-server`(端口 8081) - 前端 dev server(端口 5173) --- ## 目录结构 ``` requirement-server/ ├── package.json ├── server.js # Express 入口 ├── db/ │ ├── init.js # 数据库初始化 │ └── requirements.db # SQLite 数据文件 ├── routes/ │ ├── health.js # 健康检查路由 │ └── requirements.js # 需求/SST 路由 └── scripts/ └── seed.js # Mock 数据脚本 ``` --- ## 注意事项 - SQLite 单文件模式适合个人开发和本地调试,生产环境建议迁移至 PostgreSQL。 - 所有 JSON 字段(`req_state`、`messages`、`tags`)在前端与后端之间直接序列化/反序列化传递。 - 数据库已开启 WAL 模式,提升并发写入性能。