使用 Fastify 和 Mongoose 开发可测性的 API

阅读时长 8 分钟读完

随着前端技术的不断发展,前端工程师也越来越需要接触和参与到后端的开发中。其中,开发 RESTful API 是前端工程师经常需要做的任务之一。而其中,可测试性是一个非常重要的考虑因素。本文将介绍如何使用 Fastify 和 Mongoose 来开发可测性的 RESTful API。

Fastify 和 Mongoose 简介

Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架。它的主要特点是性能优异、易于扩展、建立在 Node.js 的核心概念之上。它的 API 设计模式简单,采用异步编程风格,且具有全面的测试。另外,Fastify 还提供丰富的插件和支持装配。

Mongoose 是一个 Node.js 应用程序的对象模型工具,旨在为异步环境中使用 MongoDB 提供简单、明显的解决方案。Mongoose 具有强大的数据验证和转换功能,使得开发人员可以更容易地编写 MongoDB 的代码。

使用 Fastify 和 Mongoose 搭建 RESTful API

在开始本次演示之前,要确保您安装了 Node.js 和 MongoDB。接下来,我们将创建一个简单的用户管理 API。我们将实现以下操作:

  • 创建一个用户
  • 获取用户信息
  • 更新一个用户
  • 删除一个用户

创建一个项目

首先,我们需要创建一个项目。在命令行中输入以下内容:

现在我们已经有了一个简单的 Node.js 项目,并且已经进行了基本的配置。

安装依赖

接下来,我们需要安装相应的依赖项,包括 Fastify、Mongoose 和其他一些需要的插件:

这里我们使用了 fastify-cors 来启用跨域请求,fastify-swagger 是为 API 文档服务,fastify-mongoose-crud 实现了一些基本的 MongoDB 操作。

配置 Fastify

在项目的根目录下,创建 index.js 文件,并输入以下内容:

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

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

在这个代码片段中,我们使用 fastify-cors 插件启用跨域请求,使用 fastify-swagger 插件生成文档,并使用 fastify-mongoose-crud 插件实现了 RESTful API 操作。我们可以非常简单地扩展和添加其他功能和插件,以及更简单和可靠的测试。

创建路由

我们需要创建一个路由器来实现所需的操作,包括创建、更新、删除和获取用户信息。我们可以将这些路由与 Fastify 实例分开,进行更好的组织。

在项目的根目录下,创建名为 user.js 的路由文件,并输入以下内容:

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

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

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

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

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

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

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

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

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

在这个代码片段中,我们定义了一些操作函数。每个函数都需要传递 fastify、req 和 res 对象,其中 fastify 可以通过 fastify.mongoModels() 方法来访问 MongoDB。我们将每个操作函数绑定到正确的路由地址,并在请求中获取参数或请求体。

在这里,我们使用了一个叫做 faker 的包,用于生成测试数据。

启动服务器

最后,我们需要将所有组件连接在一起,并将服务器启动起来。在根目录下的 index.js 中加入以下代码:

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

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

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

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

在这里,我们引入了之前编写的路由、Fastify 和 MongoDB,我们配置了路由地址并且启用了监听。现在您可以在浏览器中访问 http://localhost:3000/api-docs 来查看我们刚刚创建的 RESTful API。

结论

本文介绍了如何使用 Fastify 和 Mongoose 来构建可测试的 RESTful API。我们看到了使用 Fastify 和 Mongoose 的好处,以及如何使用这些工具构建一个能够通过测试的 API。我们还展示了如何使用 Fastify 和 Mongoose 扩展和添加其他功能和插件、组合路由器和中间件。我们鼓励您将这些概念和代码作为一个开发的基础,并在今后的工作中使用其中的代码以及他们所提供的工具和实践。

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

纠错
反馈