Fastify 是一个快速、低开销、可扩展的 Node.js web 框架。它专注于提供优秀的开发体验,同时保持代码简洁易懂。在本教程中,我们将使用 Fastify 实现一个简单的 RESTful API,包括路由、控制器和持久化存储。
准备工作
在开始之前,您需要确保您已经安装了 Node.js 和 npm。您可以通过运行以下命令来检查它们是否已经安装:
node -v npm -v
如果您没有安装它们,请访问 Node.js 官方网站 下载并安装。
安装 Fastify
首先,我们需要安装 Fastify。在命令行中运行以下命令:
npm install fastify
创建项目
接下来,我们将创建一个新的项目文件夹,并在其中创建一个新的文件 index.js
。
在项目文件夹中运行以下命令:
mkdir my-fastify-app cd my-fastify-app touch index.js
现在,我们已经准备好开始编写代码了。
创建路由
我们将从创建路由开始。在 Fastify 中,您可以使用 fastify.route()
方法创建路由。我们将创建一个 GET 路由,用于获取所有用户的信息。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ------ - ------ -- - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上述代码中,我们使用 fastify.route()
方法创建了一个 GET 路由,它的 URL 是 /users
,它的处理函数返回一个空数组,该数组将包含所有的用户信息。
创建控制器
接下来,我们需要创建一个控制器,用于处理路由的请求。控制器将负责从数据库中获取数据,并将其返回给路由。
在项目文件夹中创建一个名为 controllers
的文件夹,并在其中创建一个名为 users.js
的文件。在 users.js
文件中添加以下代码:
const users = [] module.exports = { getAllUsers: async () => { return users } }
在上述代码中,我们创建了一个名为 users
的空数组,并导出了一个名为 getAllUsers
的方法,该方法将返回该数组。
接下来,我们需要更新我们的路由,以调用 getAllUsers()
方法,并将其返回值返回给客户端。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- --------------- - ------------------------------ --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ----- ----- - ----- ----------------------------- ------ - ----- - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
现在,我们已经完成了路由和控制器的创建。接下来,我们将使用 MongoDB 作为我们的持久化存储。
使用 MongoDB
在本教程中,我们将使用 MongoDB 作为我们的数据库。我们将使用 fastify-mongodb
插件来连接 MongoDB 数据库。
首先,我们需要安装 fastify-mongodb
插件。在项目文件夹中运行以下命令:
npm install fastify-mongodb
接下来,我们需要在 index.js
文件中配置 fastify-mongodb
插件,并连接到 MongoDB 数据库。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- --------------- - ------------------------------ -------------------------------------------- - ---- ------------------------------------------ -- --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ----- - ----- --------------------------------------- ------ - ----- - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上述代码中,我们使用 fastify.register()
方法注册了 fastify-mongodb
插件,并传递了一个 URL,该 URL 指向我们的 MongoDB 数据库。
接下来,我们更新了路由处理函数,使用 fastify.mongo.db
属性来获取 MongoDB 数据库的引用,并使用该引用查询 users
集合中的所有文档。
创建用户
接下来,我们将创建一个 POST 路由,用于创建用户。我们将使用 fastify-mongodb
插件来将新用户添加到数据库中。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- --------------- - ------------------------------ -------------------------------------------- - ---- ------------------------------------------ -- --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ----- - ----- --------------------------------------- ------ - ----- - - -- --------------- ------- ------- ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------------------- ------ - ----- ------------- - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上述代码中,我们创建了一个 POST 路由,它的 URL 是 /users
,它的处理函数将请求正文插入到 users
集合中,并返回新创建的用户。
更新用户
接下来,我们将创建一个 PUT 路由,用于更新用户。我们将使用 fastify-mongodb
插件来更新数据库中的用户。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- --------------- - ------------------------------ -------------------------------------------- - ---- ------------------------------------------ -- --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ----- - ----- --------------------------------------- ------ - ----- - - -- --------------- ------- ------- ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------------------- ------ - ----- ------------- - - -- --------------- ------- ------ ---- ------------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------- ---- --- --------------------------- -- - ----- ------------ -- ------ - ----- ------ - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上述代码中,我们创建了一个 PUT 路由,它的 URL 是 /users/:id
,它的处理函数将更新具有指定 ID 的用户,并返回更新后的用户。
删除用户
最后,我们将创建一个 DELETE 路由,用于删除用户。我们将使用 fastify-mongodb
插件来从数据库中删除用户。
在 index.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- --------------- - ------------------------------ -------------------------------------------- - ---- ------------------------------------------ -- --------------- ------- ------ ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ----- - ----- --------------------------------------- ------ - ----- - - -- --------------- ------- ------- ---- --------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------------------- ------ - ----- ------------- - - -- --------------- ------- ------ ---- ------------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------- ---- --- --------------------------- -- - ----- ------------ -- ------ - ----- ------ - - -- --------------- ------- --------- ---- ------------- -------- ----- --------- ------ -- - ----- -- - ---------------- ----- ------ - ----- ---------------------------------- ---- --- --------------------------- -- ------ - ----- ------ - - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上述代码中,我们创建了一个 DELETE 路由,它的 URL 是 /users/:id
,它的处理函数将删除具有指定 ID 的用户,并返回删除操作的结果。
结论
在本教程中,我们使用 Fastify 实现了一个简单的 RESTful API,包括路由、控制器和持久化存储。我们还使用了 MongoDB 作为我们的数据库,并使用了 fastify-mongodb
插件来连接和操作数据库。
Fastify 是一个强大且易于使用的框架,它提供了许多有用的功能和插件,以帮助您构建高效和可扩展的应用程序。我们希望本教程能够帮助您了解 Fastify 的一些基础知识,并开始使用它来构建您自己的应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6764fad476af2b9a20e6a49c