# Todo List 简约大方的 Todo List 应用,支持多层级任务管理(主任务 → 子任务 → 孙任务),数据存储于本地 JSON 文件,无需数据库和鉴权。 ## 技术栈 - **后端**:Node.js + Express - **前端**:原生 HTML/CSS/JS,零框架依赖 - **数据存储**:本地 JSON 文件 (`data/todos.json`) - **部署**:PM2 进程守护 ## 快速开始 ```bash # 安装依赖 pnpm install # 开发模式(文件变更自动重启) pnpm dev # 生产模式 pnpm start ``` 服务默认运行在 `http://localhost:3003`。 ## PM2 部署 ```bash # 首次启动 pm2 start ecosystem.config.js # 查看状态 pm2 status # 重启 pm2 restart my-todo-list # 停止 pm2 stop my-todo-list # 设置开机自启 pm2 save pm2 startup ``` ## 功能 - ✅ 创建主任务(+ 按钮 + 输入框,回车确认) - ✅ 子任务 / 孙任务(层级缩进,最多三级) - ✅ 父任务完成时子孙自动完成 - ✅ 完成 / 废弃 / 恢复 - ✅ 历史记录查询(按状态筛选) - ✅ 响应式设计,适配桌面和移动端 ## 目录结构 ``` my-todo-list/ ├── server.js # Express 服务入口 ├── ecosystem.config.js # PM2 配置 ├── package.json ├── public/ │ ├── index.html # 页面 │ ├── style.css # 样式 │ └── app.js # 前端逻辑 ├── data/ │ └── todos.json # 数据文件(运行时自动创建) └── spec.md # 需求规格 ``` ## API | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/todos` | 获取全部任务 | | POST | `/api/todos` | 创建任务 | | PATCH | `/api/todos/:id` | 更新任务 | | DELETE | `/api/todos/:id` | 删除任务(级联删除子孙) |