随着前端技术的不断发展,前端工程师也越来越需要接触和参与到后端的开发中。其中,开发 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。我们将实现以下操作:
- 创建一个用户
- 获取用户信息
- 更新一个用户
- 删除一个用户
创建一个项目
首先,我们需要创建一个项目。在命令行中输入以下内容:
mkdir fastify-mongoose-api && cd fastify-mongoose-api npm init -y
现在我们已经有了一个简单的 Node.js 项目,并且已经进行了基本的配置。
安装依赖
接下来,我们需要安装相应的依赖项,包括 Fastify、Mongoose 和其他一些需要的插件:
npm i fastify fastify-cors fastify-swagger fastify-mongoose-crud npm i mongoose faker
这里我们使用了 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