🚀 构建我的第一个后端项目:Expense Tracker API
发布: (2026年3月8日 GMT+8 08:36)
4 分钟阅读
原文: Dev.to
Source: Dev.to
项目概述
Expense Tracker API 是一个 RESTful 后端服务,允许用户:
- 创建和管理费用类别
- 添加和跟踪费用
- 按类别组织费用
- 通过 API 端点执行 CRUD 操作
它可以作为移动应用、网页仪表盘或财务管理系统的后端引擎。
技术栈
- Node.js – 运行时环境
- Express.js – 用于构建 API 的 Web 框架
- PostgreSQL – 关系型数据库
- Sequelize ORM – 数据库建模和迁移工具
- Docker – 容器化开发环境
- TablePlus – 数据库管理工具
这些工具帮助展示了现代后端系统的结构和部署方式。
数据库设计
API 围绕两个主要实体构建:
Categories(类别)
类别用于将费用组织成以下分组:
- Food(食品)
- Transportation(交通)
- Utilities(公共事业)
- Entertainment(娱乐)
每个类别包含:
idnamecreatedAtupdatedAt
Expenses(费用)
费用代表单条财务记录。每条费用包含:
idtitleamountcategoryId(外键)createdAtupdatedAt
categoryId 将每条费用关联到相应的类别,确保正确的分类。
API 端点
提供标准的 REST 端点。
Categories(类别)
POST /categoriesGET /categoriesGET /categories/:idPUT /categories/:idDELETE /categories/:id
Expenses(费用)
POST /expensesGET /expensesGET /expenses/:idPUT /expenses/:idDELETE /expenses/:id
这些端点实现了对财务数据的完整 CRUD 功能。
我学到的关键点
构建此项目加深了我对多个后端概念的理解。
数据库迁移
Sequelize 迁移实现了受版本控制的模式变更,省去了手动创建表的步骤。
模型关系
通过外键将费用链接到类别,阐明了关系型数据库如何强制数据完整性。
API 架构
我将项目组织为:
- Routes(路由)
- Controllers(控制器)
- Models(模型)
- Migrations(迁移)
这种分层保持代码库整洁且易于维护。
错误处理
常见问题包括:
- 迁移顺序错误
- 数据库连接问题
- 模型引用错误
调试这些问题提升了我对后端行为的把握。
使用 Docker 进行开发
Docker 标准化了开发环境,确保应用在不同系统上运行一致,通过将运行时、依赖和配置打包在一起实现。
未来改进
计划的增强功能:
- 用户认证(JWT)——已实现
- 按日期过滤费用
- 大数据集的分页
- 费用分析端点
- 使用 Swagger 的 API 文档