第七部分:阶段项目 5:构建 NestJS + MySQL RESTful API 服务器
现在,是时候将你学到的所有后端知识(Node.js, Express, NestJS, MySQL, TypeORM)结合起来,构建一个功能完整的 RESTful API 服务器了!
我们将基于之前项目的需求,实现数据的持久化存储到 MySQL 数据库,并使用 TypeORM 进行数据操作。
项目选择 1:NestJS + MySQL 博客文章 API
使用 NestJS 和 MySQL (TypeORM) 实现文章的增删改查接口。需要包含 Author
和 Post
实体,并建立一对多关系。
项目选择 2:NestJS + MySQL 任务管理 API
使用 NestJS 和 MySQL (TypeORM) 实现任务的增删改查接口。可以考虑添加用户实体,建立用户和任务的一对多关系(一个用户创建多个任务)。
项目要求:
- 使用 Nest CLI 创建新的 NestJS 项目。
- 安装 TypeORM 和
mysql2
。 - 配置
app.module.ts
连接你的 MySQL 数据库。 - 为你的资源(文章/作者 或 任务/用户)创建 NestJS 模块、控制器和服务。
- 定义实体类 (
.entity.ts
),映射到数据库表,并使用 TypeORM 装饰器定义列和关系。 - 使用 DTOs(类)定义创建和更新资源的请求体结构。
- 在模块文件 (
.module.ts
) 中使用TypeOrmModule.forFeature()
注册实体。 - 在 Service 文件中注入对应的 Repository,并使用 Repository 的方法(
find
,findOne
,save
,delete
等)实现 RESTful API 的 CRUD 逻辑。 - 在 Service 中实现带有关系加载的查询(例如,获取作者时同时加载其文章)。
- 在 Controller 中定义路由和处理方法,调用 Service 方法,使用参数装饰器和 DTOs。
- 使用
ParseIntPipe
验证 ID 参数。 - 实现错误处理(例如,找不到资源时抛出
NotFoundException
)。 - (可选)全局应用一个 Exception Filter。
- (可选)添加
morgan
和cors
中间件。 - 运行应用 (
npm run start:dev
)。 - 使用工具(如 Postman)全面测试你的 API 接口。
实施步骤建议:
- 使用 Nest CLI 创建项目,安装依赖。
- 配置
app.module.ts
连接数据库(注意synchronize
选项在开发环境开启,生产环境关闭)。 - 设计数据库表结构,创建实体文件并定义列和关系。
- 使用 CLI 生成模块、控制器和服务。
- 在模块文件中注册实体。
- 定义 DTOs 类。
- 在 Service 中注入 Repository,并实现 CRUD 方法和关系查询方法。
- 在 Controller 中定义路由,调用 Service 方法,处理请求参数和响应。
- 根据需要添加 Pipes, Filters, Middlewares。
- 运行应用,检查控制台输出和数据库表结构是否同步成功。
- 使用 Postman 等工具测试你的 API 接口,确保所有功能正常工作,数据能正确地在应用和数据库之间流动。
完成这个项目,你将真正掌握全栈开发中后端数据持久化的核心环节,能够使用 NestJS 和 MySQL (TypeORM) 构建功能强大的后端服务。
到此,我们已经搭建起了全栈应用的后端骨架,并连接了持久化的数据仓库。在接下来的教程中,我们将回到前端,学习如何使用现代前端框架(如 React 或 Vue)来构建交互式的用户界面,并学习如何将前端应用与我们构建的后端 API 进行通信,最终实现一个完整的全栈 Web 应用。敬请期待!