实现 Fastify 和 Sequelize 的结合使用

Fastify 是一个用于构建高效 Web 应用程序的 Web 框架,其具有出色的性能和易用性。Sequelize 是一个流行的 Node.js ORM 框架,可与许多不同类型的关系数据库集成。

本文将介绍如何结合使用 Fastify 和 Sequelize 构建一个简单的 Web 应用程序。我们将讨论如何设置 Fastify 和 Sequelize,以及如何处理基本的路由和数据库查询。

快速开始

在开始之前,请确保您已经安装了 Node.js 和 npm。首先,我们需要创建一个新的 Node.js 项目。我们可以使用 npm init 命令来创建新项目:

----- --------------
-- --------------
--- ---- --

接下来,安装 Fastify 和 Sequelize:

--- ------- ------- --------- -------------------- ------

我们选择了 sequelize-typescript 作为 Sequelize 的 TypeScript 封装程序,其中 mysql2 用于与 MySQL 数据库集成。

配置数据库

在继续之前,你需要在本地安装并运行 MySQL 数据库,然后创建一个新的数据库。

然后,我们需要在项目中创建一个 .env 文件来配置数据库连接:

-----------------
------------
------------
--------------------
-------------------

在项目的根目录下创建一个名为 server.ts 的文件,并将以下代码添加到其中:

------ ----------------
------ ------- ---- ----------
------ - --------- - ---- -----------------------
------ - ---- - ---- ----------------

----- ------ - ----------

----- --------- - --- -----------
  --------- --------------------
  ----- --------------------
  ----- ----------------------------
  --------- --------------------
  --------- ------------------------
  -------- --------
  ------- -------
---

------------------------ -- -
  ------------------- ------- -------- -- -
    -- ------- -
      ---------------------
      ----------------
    -
    ------------------- --------- -- -------------
  ---
---

在这里,我们首先加载 .env 文件来获取数据库连接信息。然后,我们创建了一个 Fastify 实例并一个 Sequelize 实例,并通过 models 选项添加了 User 模型。

最后,我们使用 Sequelize.sync() 方法创建数据库表并在端口 3000 上启动服务器。

现在,我们需要创建一个 User 模型,以便将数据存储在数据库中。我们可以在 models 文件夹中创建一个 user.ts 文件,并添加以下代码:

------ - ---------- ------ ----- - ---- -----------------------

------
------ ----- ---- ------- ----- -
  ---------
    ----- -----------------
    ---------- ------
  --
  ------ -------

  ---------
    ----- -----------------
    ---------- ------
  --
  ------- -------
-

在这里,我们首先使用 @Table 装饰器将 User 类标记为 Sequelize 模型。然后,我们添加了两个列,name 和 email,它们都是必填项。

创建 CRUD 操作

现在我们可以开始处理路由了。我们将实现基本的 CRUD(Create、Read、Update、Delete)操作,这意味着我们需要为每个 HTTP 动词处理一个路由。我们可以在 server.ts 文件的底部添加以下路由处理程序:

-- ------ ----
--------------------- ----- --------- ------ -- -
  ----- ---- - --- -------------------
  ----- ------------
  ---------------------------
---

-- ---- ----
------------------------ ----- --------- ------ -- -
  ----- ---- - ----- ---------------------------------
  -- ------ -
    -----------------
  - ---- -
    ---------------------- -------- ----- --- ------ ---
  -
---

-- ------ ----
------------------------ ----- --------- ------ -- -
  ----- ---- - ----- ---------------------------------
  -- ------ -
    --------- - ------------------
    ---------- - -------------------
    ----- ------------
    -----------------
  - ---- -
    ---------------------- -------- ----- --- ------ ---
  -
---

-- ------ ----
--------------------------- ----- --------- ------ -- -
  ----- ---- - ----- ---------------------------------
  -- ------ -
    ----- ---------------
    -----------------------
  - ---- -
    ---------------------- -------- ----- --- ------ ---
  -
---

在这里,我们为每个 HTTP 动词创建了一个路由处理程序。对于 POST 请求,我们创建了一个新的用户,并将其保存到数据库中。对于 GET 请求,我们检索数据库中的用户并发送回响应。对于 PUT 请求,我们更新数据库中的用户,并将其发送回响应。对于 DELETE 请求,我们删除数据库中的用户,并发送一个空响应。

测试应用程序

现在,我们已经创建了一个基本的应用程序,我们可以测试它了。运行以下命令启动服务器:

--- --- -----

然后,您可以使用 curl 或任何其他 HTTP 客户端工具发送请求。例如,要创建一个新的用户,请运行以下命令:

---- -- ---- -- -------------- ----------------- -- --------- -------- -------- --------------------- ---------------------------

您可以使用类似的方法测试其他 CRUD 操作。在测试之前,请确保您已经安装了 curl。

结论

在本文中,我们介绍了如何使用 Fastify 和 Sequelize 构建一个简单的 Web 应用程序,并处理基本的 CRUD 操作。我们学习了如何配置数据库连接,如何创建 Sequelize 模型,以及如何处理路由。

您可以在 GitHub 上找到源代码:https://github.com/username/my-fastify-app。这将是一个良好的起点,可帮助您深入探索 Fastify 和 Sequelize 的更高级用法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670c848313095b8ea327d9aa