如何在 Fastify 中使用 TypeORM 进行数据库操作

阅读时长 8 分钟读完

在现代 Web 开发中,数据库操作是不可避免的一部分。TypeORM 是一个基于 TypeScript 的 ORM(对象关系映射)框架,可以帮助我们更轻松地进行数据库操作。Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架。本文将介绍如何在 Fastify 中使用 TypeORM 进行数据库操作。

安装 TypeORM 和相关依赖

首先,我们需要安装 TypeORM 和相关依赖:

其中,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

纠错
反馈