如何使用 Fastify 和 MySQL 构建 Node.js CRUD 应用程序

阅读时长 12 分钟读完

在前端开发中,服务器端的应用程序开发也是必不可少的一项技能。其中,构建一个基于 Node.js 并使用 MySQL 数据库的 CRUD 应用程序是一个基础而重要的任务。在这篇文章中,我们将介绍如何使用 Fastify 和 MySQL 构建 Node.js CRUD 应用程序。

步骤一:搭建环境

在开始之前,我们需要安装 Node.js 和 MySQL。如果您还没有安装,可以通过下面的链接来进行下载和安装:

完成安装后,您需要在 MySQL 中创建一个数据库,并设置相关的权限和连接信息。在本文档中,我们将使用名为 fastify_mysql_crud 的数据库,并使用 root 用户作为连接用户。

步骤二:创建 Fastify 应用程序

首先,我们需要使用 npm 来创建一个基础的 Fastify 应用程序。运行以下命令:

这会提示您几个问题来设置您的项目。

接下来,我们需要安装一些依赖项,包括 Fastify 和 MySQL。执行以下命令来安装它们:

这将在 package.json 文件中添加 fastifymysql 依赖项。

步骤三:连接到 MySQL

在此步骤中,我们将使用 mysql npm 包来连接到 MySQL 数据库。

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

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

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

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

在上述代码中,我们首先引入了 fastifymysql 模块。接下来,我们使用 mysql.createConnection() 函数创建了一个连接对象,其中包含了 MySQL 数据库的连接信息。我们将数据库连接信息直接指定到函数的参数中。

随后,我们调用了 connection.connect() 函数来对数据库进行连接。如果连接失败,则我们输出错误信息并退出进程;如果连接成功,则输出连接成功信息。

最后,我们使用 fastify.decorate() 函数来将连接对象添加到 Fastify 实例中,以便在后续的代码中访问它。

步骤四:定义路由及处理程序

在此步骤中,我们将定义路由和相应的处理程序来处理 HTTP 请求和数据库操作。

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

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

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

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

在上述代码中,我们定义了四个路由,分别处理 GET、POST、PUT 和 DELETE 请求。在每个处理程序中,我们都首先通过 fastify 实例获取连接对象。接下来,我们使用 mysql.query() 函数来执行相应的 SQL 语句。

在 GET 请求中,我们查询了 users 表中的所有数据,并将结果作为响应发送给客户端。在 POST 请求中,我们插入了一个新的用户,并返回插入成功的消息。在 PUT 请求中,我们更新了指定 ID 的用户,并返回更新成功的消息。在 DELETE 请求中,我们删除了指定 ID 的用户,并返回删除成功的消息。

需要注意的是,我们处理了可能出现的错误并返回了相应的错误消息。

步骤五:启动服务器

最后,我们需要启动 Fastify 服务器。在 index.js 文件的末尾添加以下代码:

在代码中,我们首先指定端口号,然后使用 fastify.listen() 函数来启动服务器。在启动成功之后,我们输出服务器地址。

完整代码示例

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

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

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

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

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

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

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

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

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

总结

在本文中,我们学习了如何使用 Fastify 和 MySQL 来构建 Node.js CRUD 应用程序。我们首先连接到 MySQL 数据库并设置相关的权限和连接信息。接下来,我们定义了路由和相应的处理程序,以便处理 HTTP 请求和数据库操作。最后,我们启动了 Fastify 服务器。

这是一个基础的示例,您可以在此基础上进行扩展,例如添加身份验证、日志记录等功能。我们希望这篇文章可以为您提供指导,并成为您未来构建更多服务器端应用程序的基础。

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

纠错
反馈