在现代 Web 开发中,数据库操作是不可避免的一部分。TypeORM 是一个基于 TypeScript 的 ORM(对象关系映射)框架,可以帮助我们更轻松地进行数据库操作。Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架。本文将介绍如何在 Fastify 中使用 TypeORM 进行数据库操作。
安装 TypeORM 和相关依赖
首先,我们需要安装 TypeORM 和相关依赖:
npm install typeorm mysql2 @types/mysql2
其中,mysql2 是 MySQL 的 Node.js 驱动程序,@types/mysql2 是 TypeScript 的类型定义文件。
配置 TypeORM
接下来,我们需要在项目根目录下创建一个 ormconfig.json 文件,用于配置 TypeORM。
-- -------------------- ---- ------- - ------- -------- ------- ------------ ------- ----- ----------- ------- ----------- ----------- ----------- ------------- -------------- ----- ---------- ------ ----------- ---------------------- ------------- ------------------------ -------------- ------------------------- ------ - -------------- --------------- ---------------- ----------------- ----------------- ----------------- - -
这里使用的是 MySQL 数据库,可以根据自己的需要修改相关配置。其中,entities、migrations 和 subscribers 分别指定了实体、迁移和订阅器的路径。
创建实体
在 TypeORM 中,实体是映射到数据库表的 JavaScript/TypeScript 类。我们需要在 src/entities 目录下创建一个 User.ts 文件,定义一个 User 类作为实体。
-- -------------------- ---- ------- ------ - ------- ----------------------- ------ - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ----- ------- --------- ------ ------- --------- --------- ------- -
这个 User 类有四个属性:id、name、email 和 password,分别对应数据库表中的四个字段。
创建控制器
接下来,我们需要在 src/controllers 目录下创建一个 UserController.ts 文件,定义一个 UserController 类作为控制器。
-- -------------------- ---- ------- ------ - ---------------- --------------- ------------ - ---- ---------- ------ - ------------- - ---- ---------- ------ - ---- - ---- ------------------- ------ ----- -------------- - ----- ----------- --------------- ------ ------------- - ----- -------------- - -------------------- ----- ----- - ----- ---------------------- ------------------ - ----- ----------- --------------- ------ ------------- - ----- -------------- - -------------------- ----- ---- - ----- -------------------------------------- -- ------- - ------------------------ -------- ----- --- ------ --- - ---- - ----------------- - - ----- ----------- --------------- ------ ------------- - ----- -------------- - -------------------- ----- ---- - -------------------------------- ----- -------------------------- ----------------- - ----- ----------- --------------- ------ ------------- - ----- -------------- - -------------------- ----- ---- - ----- -------------------------------------- -- ------- - ------------------------ -------- ----- --- ------ --- - ---- - -------------------------- ---------- ----- -------------------------- ----------------- - - ----- ----------- --------------- ------ ------------- - ----- -------------- - -------------------- ----- ---- - ----- -------------------------------------- -- ------- - ------------------------ -------- ----- --- ------ --- - ---- - ----- ---------------------------- ------------ -------- ----- -------- --- - - -
这个 UserController 类有五个方法:getAll、getOne、create、update 和 delete,分别对应获取所有用户、获取单个用户、创建用户、更新用户和删除用户的操作。这里使用了 getRepository 方法来获取 UserRepository 对象,然后调用其相应的方法进行数据库操作。
创建路由
最后,我们需要在 src/routes 目录下创建一个 user.ts 文件,定义一个 user 路由,将 UserController 类中的方法与路由路径对应起来。
-- -------------------- ---- ------- ------ - --------------- - ---- ---------- ------ - -------------- - ---- -------------------------------- ------ ------- ----- -------- ------------------- ---------------- - ----- ---------- - --- ----------------- --------------------- ------------------- ------------------------- ------------------- ---------------------- ------------------- ------------------------- ------------------- ---------------------------- ------------------- -
这个 user 路由有五个路由路径:/users、/users/:id、/users、/users/:id 和 /users/:id,分别对应获取所有用户、获取单个用户、创建用户、更新用户和删除用户的操作。
注册路由
最后一步是在 app.ts 中注册路由。
-- -------------------- ---- ------- ------ ------- ---- ---------- ------ ---------- ---- ---------------- ----- --- - --------- ------- ---- --- ------------------------- ---------------- ----- -------- -- - -- ----- - ------------------- ---------------- - -------------------- --------- -- ------------- ---
这里使用 app.register 方法将 user 路由注册到应用程序中。
总结
本文介绍了如何在 Fastify 中使用 TypeORM 进行数据库操作。我们首先安装了 TypeORM 和相关依赖,然后配置了 ormconfig.json 文件。接着,我们创建了一个 User 实体和一个 UserController 控制器,最后将其与路由路径对应起来,并在 app.ts 中注册了路由。这个例子可以作为一个简单的起点,帮助你开始使用 TypeORM 进行数据库操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65fcff12d10417a22285b0a4