如何用 Fastify 和 Sequelize 进行 ORM 操作

阅读时长 8 分钟读完

前言

在现代 Web 开发中,ORM(Object Relational Mapping,对象关系映射)已经成为了不可或缺的一部分。ORM 技术通过将数据库中的表映射为编程语言中的对象,从而简化了数据库操作和数据持久化的过程。在 Node.js 中,Sequelize 是一个非常流行的 ORM 库,而 Fastify 则是一个快速、低开销的 Web 框架。本文将介绍如何使用 Fastify 和 Sequelize 进行 ORM 操作。

环境准备

在开始之前,你需要确保你的系统已经安装了 Node.js 和 npm。你可以通过以下命令检查它们是否已经安装:

如果你看到了版本号,那么说明它们已经安装成功了。否则,你需要前往 Node.js 官网下载并安装它们。

另外,你还需要安装 Fastify 和 Sequelize:

上述命令将会安装 Fastify、Sequelize、Sequelize CLI 和 MySQL2(MySQL 的驱动程序)。

创建数据库

在开始编写代码之前,我们需要先创建一个数据库。这里我们使用 MySQL 作为数据库,你也可以使用其他数据库,只需要相应地更改参数即可。

首先,你需要登录 MySQL:

然后输入你的 MySQL 密码。接下来,你需要创建一个数据库:

这里我们将数据库命名为 fastify_sequelize。你可以根据自己的需要更改它。

创建模型

在使用 Sequelize 进行 ORM 操作之前,我们需要先创建一个模型。模型是数据库表的一个映射,它定义了表中的字段和它们的数据类型。在这里,我们将创建一个名为 User 的模型,它将映射到数据库中的 users 表。

首先,我们需要使用 Sequelize CLI 创建一个模型:

上述命令将创建一个名为 User 的模型,并定义了三个字段:firstNamelastNameemail。这三个字段的数据类型均为字符串。

执行完上述命令之后,你会在项目的根目录下看到一个名为 models 的文件夹,其中包含了一个名为 user.js 的文件。这个文件就是我们刚刚创建的模型。

接下来,我们需要在 user.js 文件中进行一些修改。首先,我们需要将模型的名称修改为 User

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

接下来,我们需要将模型的表名修改为 users

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

最后,我们需要在 index.js 文件中加载模型:

创建路由

现在我们已经创建了模型,接下来我们需要创建一些路由来操作数据库。

首先,我们需要创建一个 GET 路由,用于获取所有用户数据:

上述代码中,我们使用 findAll() 方法从数据库中获取所有用户数据,并将它们作为响应发送给客户端。

接下来,我们需要创建一个 POST 路由,用于创建新用户:

上述代码中,我们使用 create() 方法创建一个新用户,并将它作为响应发送给客户端。注意,我们使用 request.body 来获取客户端发送的数据。

最后,我们需要创建一个 GET 路由,用于获取单个用户数据:

上述代码中,我们使用 findByPk() 方法从数据库中获取指定 ID 的用户数据,并将它作为响应发送给客户端。

启动服务器

现在我们已经创建了路由,接下来我们需要启动服务器:

上述代码将在本地的 3000 端口上启动一个服务器,监听来自客户端的请求。

示例代码

完整的示例代码如下:

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

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

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

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

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

结语

本文介绍了如何使用 Fastify 和 Sequelize 进行 ORM 操作。通过本文的学习,你应该能够掌握如何创建模型、定义路由以及启动服务器。当然,这只是一个入门级的示例,你还可以根据自己的需求进行更加复杂的操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67959af7504e4ea9bdbb8ce8

纠错
反馈