这是一个将鸿蒙3记账应用升级到鸿蒙5.0.5(17)版本,并将后端从鸿蒙原生数据库改为Node.js服务端的项目。
- 升级前: 鸿蒙3 (API 9)
- 升级后: 鸿蒙5.0.5(17) (API 17)
- 兼容版本: 鸿蒙5.0.0(12) (API 12)
- 原架构: 鸿蒙原生关系型数据库 (RDB)
- 新架构: Node.js + Express + SQLite RESTful API
Accouting_ArkTS-master/
├── backend/ # Node.js后端服务
│ ├── src/
│ │ ├── app.js # Express应用主文件
│ │ ├── server.js # 服务器启动文件
│ │ ├── config/
│ │ │ └── database.js # 数据库配置
│ │ ├── models/
│ │ │ └── AccountingInfo.js # 记账信息数据模型
│ │ └── routes/
│ │ ├── accounting.js # 记账API路由
│ │ ├── dayInfo.js # 统计API路由
│ │ └── category.js # 分类API路由
│ ├── package.json # 后端依赖配置
│ ├── .env.example # 环境变量模板
│ ├── start.sh # 启动脚本
│ └── README.md # 后端详细文档
├── entry/ # 鸿蒙前端应用
│ ├── src/main/ets/
│ │ ├── common/
│ │ │ ├── api/ # API服务类
│ │ │ │ ├── AccountingApi.ets
│ │ │ │ ├── DayInfoApi.ets
│ │ │ │ └── CategoryApi.ets
│ │ │ └── utils/
│ │ │ └── HttpUtil.ets # HTTP请求工具类
│ │ └── Viewmodel/
│ │ ├── AccountingInfoApi.ets # 新的记账API适配器
│ │ └── DayInfoApi.ets # 新的日统计API适配器
│ ├── build-profile.json5 # 构建配置(已升级,移除C++)
│ └── oh-package.json5 # 模块依赖(已升级,仅网络模块)
├── build-profile.json5 # 主构建配置(已升级)
├── oh-package.json5 # 主依赖配置(已升级)
└── README.md # 本文档
在改造过程中,已删除以下不再需要的文件和目录:
entry/src/main/cpp/- C++原生代码目录entry/src/main/ets/common/database/- 鸿蒙原生数据库相关代码- 相关的构建配置和依赖项
- 所有业务逻辑和数据模型
- UI组件和页面
- 新的网络API适配层
- 配置文件(已升级版本)
- 框架: HarmonyOS 5.0.5(17)
- 语言: ArkTS
- API: Stage模式
- 网络模块: @ohos.network.http
- 运行环境: Node.js 18+
- Web框架: Express.js 4.18.2
- 数据库: SQLite3
- 中间件:
- helmet (安全)
- cors (跨域)
- morgan (日志)
- body-parser (请求解析)
# 进入后端目录
cd backend
# 启动开发环境
./start.sh dev
# 或启动生产环境
./start.sh
# 或手动启动
npm install
npm run dev # 开发模式
npm start # 生产模式后端服务将在 http://localhost:3000 启动
使用DevEco Studio打开项目,确保使用HarmonyOS 5.0.5(17) SDK进行编译。
确保鸿蒙设备/模拟器可以访问本地后端服务:
- 如果使用模拟器,通常可以直接访问
localhost:3000 - 如果使用真机,需要将
localhost改为电脑的局域网IP地址
详细的API文档请参考: backend/README.md
GET /api/accounting- 获取所有记账记录POST /api/accounting- 创建记账记录PUT /api/accounting/:id- 更新记账记录DELETE /api/accounting/:id- 删除记账记录GET /api/dayInfo/:date- 获取指定日期统计GET /api/category- 获取所有分类
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER PRIMARY KEY | 记录ID |
| date | TEXT | 日期 |
| amount | REAL | 金额 |
| category | TEXT | 分类 |
| typeName | TEXT | 类型(收入/支出) |
| icon | TEXT | 图标 |
| remark | TEXT | 备注 |
| 字段 | 类型 | 说明 |
|---|---|---|
| date | TEXT PRIMARY KEY | 日期 |
| expense | REAL | 支出总额 |
| income | REAL | 收入总额 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER PRIMARY KEY | 分类ID |
| category | TEXT | 分类名称 |
| icon | TEXT | 图标 |
| index | INTEGER | 排序索引 |
| typeName | TEXT | 类型(收入/支出) |
- 更新
build-profile.json5中的 SDK 版本 - 更新
oh-package.json5中的依赖版本 - 添加网络请求依赖
@ohos/network.http
- 创建完整的Node.js后端服务
- 实现RESTful API接口
- 数据迁移和同步机制
- 创建API适配器层,最小化前端改动
- 创建HTTP工具类和API服务类
- 实现API适配器,保持原有接口调用方式
- 更新数据模型以支持网络请求
- 前端:DevEco Studio + 鸿蒙模拟器
- 后端:Node.js 开发服务器
- 前端:鸿蒙应用商店发布
- 后端:云服务器 + PM2进程管理
- 数据库:SQLite文件或迁移到MySQL/PostgreSQL
- 网络权限: 鸿蒙应用需要配置网络访问权限
- 跨域配置: 后端已配置CORS支持前端访问
- 数据同步: 后端自动维护日统计,无需手动操作
- 错误处理: 所有API调用都有完善的错误处理机制
- 架构设计: 全栈改造方案
- 前端开发: HarmonyOS 5.0.5(17) 适配
- 后端开发: Node.js RESTful API
- 测试验证: 功能完整性验证
MIT License