前言
在开发前端应用程序时,处理数据是不可避免的。因此,我们需要一些工具来管理和操作数据。在本文中,我们将介绍如何使用 Fastify 和 PostgreSQL 来管理数据。
Fastify 是一个快速的 Web 框架,它的设计旨在最大限度地提高性能。PostgreSQL 是一个强大的关系型数据库,它的开放源代码和出色的性能使它成为开发人员的首选之一。
安装依赖
在开始之前,您需要安装一些依赖项。
- Fastify
- Fastify Postgres
- PostgreSQL
在终端中运行以下命令:
--- ------- ------- ---------------- --
配置 PostgreSQL
在我们开始应用程序之前,我们需要配置 PostgreSQL 数据库。
创建数据库
打开 PostgreSQL 命令行界面并键入以下命令:
------ -------- -----
创建表
现在我们需要创建一个表。我们将创建一个 users 表作为示例。在命令行界面中输入以下内容:
------ ----- ----- - -- ------ ------- ---- ---- ------- --- ----- ----- ------- --- ---- ------- -------- ------- --- ---- --
添加数据
为了演示目的,我们将向用户表添加一些示例数据。在命令行界面输入以下内容:
------ ---- ----- ------ ------ --------- ------ ------ ----- ---------------------- ------------ ------ ---- ----- ------ ------ --------- ------ ------ ----- ---------------------- ------------
创建 Fastify 应用程序
现在我们已经配置了 PostgreSQL 数据库,我们将创建一个 Fastify 应用程序。
首先,在项目的根目录中创建一个 server.js 文件。在文件中导入 Fastify 和 Fastify PostgreSQL:
----- ------- - --------------------- ----- --------------- - ----------------------------
接下来,连接到 PostgreSQL 数据库:
--------------------------------- - ----------------- -------------------------------------------------- --
请注意,您需要将连接字符串替换为您自己的值。将 localhost 替换为您的数据库主机名,mydb 替换为您创建的数据库名称,username 和 password 替换为您的数据库登录凭据。
现在我们已经连接到数据库,让我们创建一个路由来获取用户列表:
---------------- ----- --------- ------ -- - ----- ------ - ----- --------------------- ----- ------ - ----- -------------------- - ---- -------- ----------------- ------ ------------ ---
该路由使用 pg.connect() 方法连接到数据库,然后使用 client.query() 方法执行 SQL 查询。最后,它将结果作为 JSON 对象发送回客户端。
在所有的资源使用完毕后,修改后将它们还回连接池,使用 client.release() 方法即可。
现在我们已经创建了一个 Fastify 应用程序,并且可以从数据库检索数据。
查询特定用户
接下来,我们将创建一个路由以获取特定用户的详细信息。在 server.js 文件中增加以下内容:
------------------- ----- --------- ------ -- - ----- ------ - ----- --------------------- ----- ------ - ----- -------------------- - ---- ----- ----- -- - ---- --------------------- ----------------- -- ------------------- --- -- - ----- --- ----------- ---- -- -------------------- --- -------- - ------ --------------- ---
这个路由接受一个 id 参数,该参数用于查询特定用户的详细信息。我们使用占位符 $1 表示查询。然后我们将请求参数用数组的形式提供到 client.query() 函数中,这样 PostgreSQL 可以避免 SQL 注入攻击。
如果查询结果为空,该路由将抛出一个错误,告诉客户端查询不到用户。
创建新用户
现在让我们创建一个路由来创建新的用户。
----------------- ----- --------- ------ -- - ----- - ----- ------ -------- - - ------------- ----- ------ - ----- --------------------- ----- ------ - ----- -------------------- ---- ----- ------ ------ --------- ------ ---- --- --- --------- --- ------ ------ ----------- ----------------- ------ --------------- ---
该路由接受一个包含 name、email 和 password 属性的请求体。它使用 client.query() 方法将用户数据插入到 users 表中。
RETURNING * 语句返回新插入的行。我们可以使用 result.rows[0] 获取插入的用户数据。
更新用户
接下来,我们将创建一个路由,以更新现有用户的详细信息。
------------------- ----- --------- ------ -- - ----- - ----- ------ -------- - - ------------- ----- ------ - ----- --------------------- ----- ------ - ----- -------------------- ----- --- ---- - --- ----- - --- -------- - -- ----- -- - -- --------- --- ------ ------ --------- -------------------- ----------------- -- ------------------- --- -- - ----- --- ----------- ---- -- -------------------- --- -------- - ------ --------------- ---
该路由接受一个 id 参数和一个包含 name、email 和 password 属性的请求体。它使用 client.query() 方法将更新后的用户数据更新到 users 表中。
RETURNING * 语句返回更新后的行。我们可以使用 result.rows[0] 获取更新后的用户数据。
如果查询结果为空,该路由将抛出一个错误,告诉客户端查询不到用户。
删除用户
最后,我们将创建一个路由以删除特定用户。
---------------------- ----- --------- ------ -- - ----- ------ - ----- --------------------- ----- ------ - ----- -------------------- ---- ----- ----- -- - -- --------- --- --------------------- ----------------- -- ------------------- --- -- - ----- --- ----------- ---- -- -------------------- --- -------- - ------ --------------- ---
该路由接受一个 id 参数,该参数用于查询特定用户的详细信息并从数据库删除。
RETURNING * 语句返回删除的行。我们可以使用 result.rows[0] 获取删除的用户数据。
如果查询结果为空,该路由将抛出一个错误,告诉客户端查询不到用户。
运行应用程序
现在我们已经完成了 Fastify 应用程序的开发,让我们运行应用程序并检查它是否工作。
首先,在终端中键入以下命令以启动服务器:
---- ---------
然后,在浏览器中输入以下 URL,您应该会看到所有用户的列表:
----------------------
接下来,在浏览器中输入以下 URL,您将获得指定用户的详细信息。请注意,您需要使用实际的 id 替换 {id}:
--------------------------
现在,您可以使用 POSTman 或 cURL 发送 POST、PUT 和 DELETE 请求以创建、更新和删除用户。
结论
在本文中,我们介绍了如何使用 Fastify 和 PostgreSQL 来管理数据。我们学习了如何连接到数据库,查询数据,添加数据,更新数据和删除数据。我们建立了一个完整的 API,使我们能够管理我们的数据。
如果您想深入了解 Fastify 和 PostgreSQL,请查阅官方文档。这里只是一个简单的示例,而实际上您将需要学习更多知识才能开发更完整的应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66ff52c9d7413cc7552ab665