Fastify 是一个快速和低开销的 Web 框架,TypeORM 是一个流行的 TypeScript ORM 框架,两者的结合可以轻松地开发出高质量的实用性 Web 应用。在本文中,我们将通过一个示例来介绍如何快速搭建一个使用 Fastify 和 TypeORM 的 Web 应用。
应用场景
本应用实现一个简单的待办事项,支持添加、编辑、删除和查询事项的基本操作。主要涉及到此类关系型数据库的增删改查操作,同时也可以方便地扩展到其他的业务场景。
环境准备
在开始之前,我们需要确保已经安装好以下环境:
- Node.js
- TypeScript
- MySQL 数据库
快速开始
1.初始化项目
使用以下命令初始化一个新项目:
mkdir todo-app && cd todo-app npm init -y
- 安装依赖
安装 Fastify 和 TypeORM:
npm install fastify typeorm reflect-metadata mysql2
同时,我们还需要安装一些相关的类型,以让 TypeScript 能够正确地识别这些库:
npm install @types/fastify @types/node @types/mysql2 @types/reflect-metadata --save-dev
- 创建数据库
创建一个名为 todo 的数据库,并在其中创建一个名为 todo 的表。
-- -------------------- ---- ------- ------ -------- ----- --- ----- ------ ----- ---- - -- --- -------------- ------- ---- ---- ------------ --- ----- ------ ------- --- ---- ------- ------ ------------ --------- --- ---- ------- ------------------ ------------ --------- --- ---- ------- ----------------- -- ------ ----------------- --
- 创建实体
我们需要创建一个 Todo 实体类,对应着表中的记录,代码如下:
-- -------------------- ---- ------- ------ - ------- ------- ---------------------- - ---- ---------- --------- ------ ----- ---- - ------------------------- ---- ------- --------- ------ ------- --------- -------- -------- -------------------- - -------- -- -- ------------------- -- ------------- ------- -------------------- - -------- -- -- -------------------- --------- ------------------- -- ------------- ------- -
- 创建 DAO
创建一个 TodoDAO 类,用于对应 Todo 实体类与数据库之间的操作,使用 @InjectRepository 装饰器来注入实体类对应的 Repository 对象,代码如下:
-- -------------------- ---- ------- ------ - ---------- - ---- ---------- ------ - ---------- - ---- -------------------- ------ - ---------------- - ---- -------------------------- ------ - ---- - ---- --------- ------------- ------ ----- ------- - ----------------------------------- ------- -------- ----- ----------------- -- ----- ------- --------------- - ------ ----------------- - ----- ------------ -------- ------------ - ---------- - ------ ---------------------- - ----- ------------ ------ ------------- - ------ --------------------- - ----- ---------- ------- ----- ------ ------------- - ----- -------------------- ------ ------ ---------------------- - ----- ---------- -------- ------------- - ----- --------------------- - -
- 创建控制器
创建一个 TodoController 控制器,用于处理 HTTP 请求,代码如下:
-- -------------------- ---- ------- ------ - ------------- -------------- - ---- ---------- ------ - ----------- ---- ----- ---- ------ - ---- -------------------- ------ - ---------- - ---- -------------------- ------ - ------- - ---- ------------ ------ - ---- - ---- --------- ------------- --------------------- ------ ----- -------------- - ------------------- -------- -------- -------- -- --------- ----- ---------- --------------- - ------ ----- -------------------- - ------------ ----- ----------------- ---------------- ------- - --- ------ - ---- ------------ - ---------- - ----- - -- - - --------------- ------ ----- -------------------------- - ---------- ----- --------------- ---------------- ----- ---- --- ------ -------------- ------------ - ---------- - ----- ---- - ----- ---------------------------------- ------------------ ------ ----- - ------------ ----- --------------- ---------------- ------- - --- ------ -- ----- ---- ---- ------------ - ---------- - ----- - -- - - --------------- ----- ---- - ----- ----------------------- -------------- ------ ----- - --------------- ----- --------------- ---------------- ------- - --- ------ - ---- ------------- - ----- - -- - - --------------- ----- ------------------------ - -
- 创建应用
创建一个 server.ts 文件,用于定义 Fastify 应用并启动服务器,代码如下:
-- -------------------- ---- ------- ------ ------------------- ------ - ------- - ---- ---------- ------ - ------------ - ---- ---------- ------ - --------- - ---- ------------------- ------ - -------------- - ---- ------------------- ------------------------ ----- --- - --------- ------- ---- --- ------------------------------------- - ------- ---- --- ---------------------------------------- - -------- - ----- - ------ ----- ----- -------- -------- -- -- ------------ ----- --- ----------------------------- ----- ---- - ---------------- -- ----- ----- -------- -------- ------------- - --- - ----- ---------------- ----------- -------------- ------------------- ------- -- ---- ---------- - ----- ----- - ------------------- - - --------
我们使用了 fastify-cors 和 fastify-swagger 插件来分别启用跨域支持和自动生成 API 文档的功能。
- 运行应用
使用以下命令来启动应用:
npm run start
运行成功后可以在 localhost:3000/docs 看到自动生成的 API 文档。
总结
在本文中,我们介绍了如何快速搭建一个使用 Fastify 和 TypeORM 的实用性 Web 应用。使用 Fastify 和 TypeORM,我们可以轻松地完成对数据库的增删改查操作,并且代码结构清晰易于维护。如果你希望深入学习这两个框架,可以参考官方文档,也可以看看社区中优秀的开源项目。希望这篇文章能对你有帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64aa84a948841e98946a3700