如何使用 Express.js 与 PostgreSQL 数据库交互

Express.js 是一款基于 Node.js 平台的轻量级 Web 应用程序框架,被广泛使用于 Web 应用程序和 API 的开发中。而 PostgreSQL 则是一种开源关系型数据库管理系统,它提供了高度可靠性和完整性的数据存储方案,也是众多企业级应用程序中常见的数据库。

本文介绍如何使用 Express.js 和 PostgreSQL 相结合,通过一个简单的 Node.js 应用程序实现数据库交互功能。我们将通过以下步骤实现此过程:

  1. 安装和配置 PostgreSQL 数据库
  2. 设置 Express.js 项目及 PostgreSQL 客户端依赖
  3. 创建简单的 PostgresSQL 数据库模型
  4. 在 Express.js 应用程序中使用模型
  5. 使用模型执行 CRUD 操作
  6. 将应用程序部署到生产环境中

安装和配置 PostgreSQL 数据库

在开始之前,我们需要安装和配置本地的 PostgreSQL 数据库。可以通过官方网站下载并安装 PostgreSQL,然后设置必要的用户和数据库。

设置 Express.js 项目及 PostgreSQL 客户端依赖

在设置项目之前,需要在本地安装 Node.js,可以通过官网下载对应版本的 Node.js 并安装。

下面我们将使用 Express.js 框架来创建新的项目,同时使用 node-postgres 作为 PostgreSQL 客户端依赖。node-postgres 是 PostgreSQL 协议的 Node.js 实现,它提供了连接、查询和处理操作等功能。此外,它还与 Express.js 紧密集成,可以很容易地为其创建自定义中间件。

现在,打开终端并执行以下命令来创建并导航到新的项目目录中:

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

然后,在项目目录中初始化 npm 包并安装需要的依赖:

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

以上命令将创建一个新的 npm 包,并将 Express.js 和 node-postgres 作为项目依赖进行安装。

创建简单的 PostgresSQL 数据库模型

在本例中,我们将创建一个简单的数据库模型 User,该模型包含以下几个属性:

  • id: 用户 ID,自动生成
  • name: 用户名字
  • email: 用户邮箱

首先,创建一个名为db.js 的文件,并在其中设置连接到 PostgreSQL 数据库的相应代码:

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

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

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

注意,上面的代码需要替换 <YOUR_DATABASE_*> 字符串为实际的 PostgreSQL 数据库相关信息。

然后,创建一个 models/user.js 文件,并在其中创建 User 模型:

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

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

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

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

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

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

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

上面的代码包含了五个方法:

  • create(name, email): 向数据库中添加一条新的用户记录
  • find(id): 从数据库中查找指定 ID 的用户记录
  • findAll(): 获取所有用户记录
  • update(id, name, email): 更新指定 ID 的用户记录
  • delete(id): 删除指定 ID 的用户记录

在 Express.js 应用程序中使用模型

现在,在 Express.js 应用程序中使用 User 模型。创建一个名为 app.js 的文件,并在其中实现一个最简单的 REST API,以支持 CRUD 操作:

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

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

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

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

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

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

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

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

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

如上所示,我们为 GET、POST、PUT 和 DELETE 请求分别创建了路由,并调用了相应 User 模型中的方法来获取、创建、更新和删除用户记录。

将应用程序部署到生产环境中

在部署我们的应用程序之前,需要将数据库连接相关信息存储在 .env 文件中,以提高安全性。在项目根目录下创建 .env 文件,并在其中设置以下环境变量:

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

然后,可以使用以下命令来启动我们的应用程序:

--- -----

最后,可以将项目打包并上传到生产服务器,使用 PM2 等工具来促进部署和管理。

结论

在本文中,我们已经学习了如何使用 Express.js 和 PostgreSQL 来实现数据库交互。通过 Node.js 应用程序中的简单示例,我们可以看到如何创建、读取、更新和删除记录。这些技术将有助于我们构建更加复杂和实用的 Web 应用程序和 API。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671b0d799babaf620fa738fa