# buding-account-end **Repository Path**: ming-yang-li001/buding-account-end ## Basic Information - **Project Name**: buding-account-end - **Description**: 布丁记账小程序后端项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 布丁记账 Node.js 后端项目 这是一个使用 Node.js 和 Express 实现的记账应用后端,提供用户认证、账单管理、分类管理等功能。本项目是从Java后端迁移而来,旨在提供更轻量级、高性能的服务。 ## 技术栈 - **Node.js**: JavaScript 运行时环境 - **Express**: Web 应用框架 - **Sequelize**: ORM 框架,用于数据库操作 - **MySQL**: 数据库 - **JWT**: 用户认证 - **bcrypt**: 密码加密 ## 项目结构 ``` src/ ├── config/ # 配置文件 │ ├── database.js # 数据库配置 │ ├── auth.js # 认证配置 │ └── models.js # 模型关系配置 ├── controllers/ # 控制器 │ ├── userController.js │ ├── billController.js │ └── categoryController.js ├── middlewares/ # 中间件 │ ├── auth.js # 认证中间件 │ └── errorHandler.js # 错误处理中间件 ├── models/ # 数据模型 │ ├── User.js │ ├── Bill.js │ └── Category.js ├── routes/ # 路由 │ ├── userRoutes.js │ ├── billRoutes.js │ ├── categoryRoutes.js │ └── index.js # 路由集合 ├── services/ # 服务层 │ ├── userService.js │ ├── billService.js │ └── categoryService.js ├── utils/ # 工具函数 │ ├── response.js # 响应格式化 │ └── initDb.js # 数据库初始化脚本 ├── app.js # Express 应用配置 └── server.js # 服务器启动文件 ``` ## 安装与运行 ### 前置条件 - Node.js (v12 或更高版本) - MySQL 数据库 ### 安装依赖 ```bash npm install ``` ### 配置环境变量 创建 `.env` 文件,并配置以下环境变量: ``` # 服务器配置 PORT=3000 # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=buding_account DB_USER=root DB_PASSWORD=password # JWT配置 JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=24h # 应用配置 NODE_ENV=development ``` ### 初始化数据库 ```bash node src/utils/initDb.js ``` ### 启动服务器 ```bash npm start ``` 开发模式(使用 nodemon 自动重启): ```bash npm run dev ``` ## API 接口 ### 用户相关 - `POST /api/user/register` - 用户注册 - `POST /api/user/login` - 用户登录 - `GET /api/user/current` - 获取当前用户信息 ### 分类相关 - `GET /api/category` - 获取分类列表 - `POST /api/category` - 创建分类 - `PUT /api/category/:id` - 更新分类 - `DELETE /api/category/:id` - 删除分类 ### 账单相关 - `POST /api/bill` - 添加账单 - `GET /api/bill/recent` - 获取最近账单 - `GET /api/bill/date` - 按日期查询账单 - `GET /api/bill/month` - 按月份查询账单统计 - `GET /api/bill/year/trend` - 获取年度账单趋势 - `PUT /api/bill/:id` - 更新账单 - `DELETE /api/bill/:id` - 删除账单 - `GET /api/bill/statistics` - 获取最近6个月收支数据(柱状图) - `GET /api/bill/stats` - 获取指定年月统计数据(饼图) ## 默认账户 初始化数据库后,会创建一个默认用户: - 用户名:admin - 密码:123456 ## 注意事项 1. 请确保已安装MySQL数据库,并创建了相应的数据库 2. 在生产环境中,请使用正式的JWT密钥和数据库密码 3. 定期备份数据库以防止数据丢失