# todo-list-project **Repository Path**: ZJB2020/todo-list-project ## Basic Information - **Project Name**: todo-list-project - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-11 - **Last Updated**: 2026-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Todo 网页应用 一个极简的待办事项(Todo)网页应用,支持任务的增删改查(CRUD)功能。 ## 技术栈 - **后端**: Golang + Gin 框架 - **前端**: Vue 3 + Vite - **数据库**: SQLite3 ## 项目结构 ``` todo-list-project/ ├── backend/ # 后端代码 │ ├── main.go # 主程序文件 │ ├── go.mod # Go 模块依赖 │ └── todos.db # SQLite 数据库文件(运行后自动生成) ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue 组件 │ │ ├── services/ # API 服务 │ │ │ └── api.js # Axios API 封装 │ │ ├── App.vue # 主应用组件 │ │ └── main.js # 入口文件 │ ├── index.html # HTML 模板 │ ├── vite.config.js # Vite 配置 │ └── package.json # npm 依赖 └── README.md # 项目文档 ``` ## 功能特性 - 创建新任务 - 查看任务列表 - 编辑任务内容(双击或点击编辑按钮) - 标记任务完成/未完成 - 删除任务 - 数据持久化存储 ## 安装与运行 ### 环境配置 #### 1. 安装 Go(如未安装) **macOS:** ```bash # 使用 Homebrew 安装(推荐) brew install go # 或从官网下载安装包 # 访问 https://go.dev/dl/ ``` **验证安装:** ```bash go version ``` #### 2. 配置 Go 国内代理(中国大陆用户推荐) 为加速依赖下载,建议配置 GOPROXY: ```bash # 使用七牛云代理(官方推荐) go env -w GOPROXY=https://goproxy.cn,direct # 或使用阿里云代理 go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct # 确保 Go Modules 已启用 go env -w GO111MODULE=on ``` **验证配置:** ```bash go env GOPROXY go env GO111MODULE ``` #### 3. 检查 Node.js 环境 ```bash # 验证 Node.js 和 npm node -v npm -v ``` ### 前置要求 - Go 1.21 或更高版本 - Node.js 16 或更高版本 - npm 或 yarn ### 后端启动 ```bash cd backend # 整理并下载依赖(首次运行必需) go mod tidy # 运行服务器 go run main.go ``` 服务启动后会在 `http://localhost:8080` 运行,使用 `Ctrl+C` 停止服务。 ### 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端应用将在 `http://localhost:5173` 启动。 ### 生产构建 ```bash cd frontend # 构建生产版本 npm run build # 预览生产构建 npm run preview ``` ## API 接口 | 方法 | 端点 | 描述 | |------|------|------| | GET | `/api/todos` | 获取所有任务 | | POST | `/api/todos` | 创建新任务 | | PUT | `/api/todos/:id` | 更新任务 | | DELETE | `/api/todos/:id` | 删除任务 | ### 请求示例 **创建任务** ```bash curl -X POST http://localhost:8080/api/todos \ -H "Content-Type: application/json" \ -d '{"title":"学习 Golang","completed":false}' ``` **更新任务** ```bash curl -X PUT http://localhost:8080/api/todos/1 \ -H "Content-Type: application/json" \ -d '{"title":"学习 Golang","completed":true}' ``` **删除任务** ```bash curl -X DELETE http://localhost:8080/api/todos/1 ``` ## 数据库 应用使用 SQLite 数据库,数据库文件 `todos.db` 会在后端首次运行时自动创建。 **表结构** ```sql CREATE TABLE todos ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, completed BOOLEAN DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); ``` ## 使用说明 1. 在输入框中输入任务名称,点击"添加"或按回车键创建新任务 2. 点击复选框标记任务为完成/未完成 3. 双击任务文本或点击"编辑"按钮修改任务内容 4. 点击"删除"按钮移除任务(会弹出确认对话框) ## 开发者 本项目使用以下框架和库: ### 后端依赖 - Gin: Web 框架 - go-sqlite3: SQLite 驱动 ### 前端依赖 - Vue 3: 渐进式 JavaScript 框架 - Vite: 下一代前端构建工具 - Axios: HTTP 客户端 ## 常见问题 ### 1. 提示 "command not found: go" **问题**: 系统未安装 Go 环境。 **解决**: 按照上述"环境配置"章节安装 Go。 ### 2. 依赖下载缓慢或失败 **问题**: 默认的 Go 代理在国内访问较慢。 **解决**: 配置国内 GOPROXY 代理: ```bash go env -w GOPROXY=https://goproxy.cn,direct ``` ### 3. 报错 "missing go.sum entry" **问题**: 缺少 go.sum 文件或依赖未完整下载。 **解决**: 在 backend 目录运行: ```bash go mod tidy ``` ### 4. 前端无法连接后端 API **问题**: 前端提示网络错误或 CORS 问题。 **解决**: 确保后端服务已启动,且运行在 `http://localhost:8080`。检查后端终端是否有错误日志。 ### 5. SQLite 数据库找不到 **问题**: 启动时报数据库相关错误。 **解决**: 确保 backend 目录有写入权限,数据库文件 `todos.db` 会在首次运行时自动创建。 ## License MIT