Node.js 中 Sequelize 操作 PostgreSQL 数据库的详细指南

阅读时长 8 分钟读完

前言

在现代化的 Web 开发中,数据库是不可或缺的组成部分之一。而 PostgreSQL 数据库被认为是最先进、最可靠的开源数据库之一。在 Node.js 开发中,Sequelize 是一个十分强大的 ORM(Object-Relational Mapping)库,它可以帮助我们更加便捷地操作各种关系型数据库。在本文中,我们将介绍如何使用 Sequelize 来操作 PostgreSQL 数据库,包括安装配置,基本的 CRUD 操作,以及一些高级用法。

安装及配置

首先,我们需要在 Node.js 项目中安装 Sequelize 和 Sequelize-CLI 。可以使用以下命令:

安装 Sequelize 后,我们需要配置 Sequelize。在项目根目录下新建一个 .sequelizerc 文件,并写入以下内容:

然后,在 config 目录下,新建一个 database.js 文件,并写入以下内容:

-- -------------------- ---- -------
-------------- - -
    ------------ -
        --------- -----------
        --------- -----
        --------- -----------------------
        ----- ------------
        -------- -----------
    --
    ----- -
        --------- -----------
        --------- -----
        --------- ----------------
        ----- ------------
        -------- -----------
    --
    ----------- -
        --------- -----------
        --------- -----
        --------- ----------------------
        ----- ------------
        -------- -----------
    --
--
展开代码

这个文件定义了三个环境:开发、测试和生产环境。我们需要根据自己的情况修改用户名、密码、数据库名称和 IP 地址。这里使用的是本地的 PostgreSQL 数据库,IP 地址为 127.0.0.1

创建模型

在使用 Sequelize 操作数据库的过程中,我们需要定义模型。模型是指映射到数据库表的类,它包含了表的结构、约束和方法。可以使用 Sequelize-CLI 来生成模型。在命令行中输入以下命令:

这个命令创建了一个名为 User 的模型,包含两个属性:nameemail,它们的类型分别为 string

在新建模型后,同样使用 Sequelize-CLI 来生成对应的数据库表。在命令行中输入以下命令:

这个命令执行数据库迁移,将我们的模型映射到一个 users 表中。

查询数据

在完成了上述步骤后,我们就可以开始使用 Sequelize 来操作数据库了。假设我们已经创建了一个 User 模型,包含 nameemail 两个属性,我们可以使用以下代码来查询所有用户:

这个代码调用了 findAll() 方法,这个方法返回一个 Promise。当 Promise 被解决时,它将返回查询结果,即所有的用户。我们可以使用 .then() 方法获取这个结果并打印出来。

添加数据

在使用 Sequelize 添加数据时,我们需要根据模型的定义创建一个实例对象。假设我们要添加一个名为 John,邮箱为 john@example.com 的用户,我们可以使用以下代码:

这个代码使用了 create() 方法来创建一个新的用户。当 Promise 被解决时,它将返回刚刚创建的用户对象,并打印出来。

更新数据

在使用 Sequelize 更新数据时,我们需要首先查询要更新的数据,并创建一个更新后的值,然后调用更新方法。假设我们要将名称为 John 的用户更新为 Alice,邮箱更新为 alice@example.com,我们可以使用以下代码:

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

--------------
  ------ -
    ----- ------
  -
------------ -- -
  -- ------ -
    -------------
      ----- --------
      ------ -------------------
    ------------------- -- -
      -------------------------
    ---
  -
---
展开代码

这个代码首先使用 findOne() 方法查询名称为 John 的用户。如果找到了这个用户,我们就可以使用它的 update() 方法来更新它的名称和邮箱。当 Promise 被解决时,它将返回更新后的用户对象,并打印出来。

删除数据

在使用 Sequelize 删除数据时,我们需要首先查询要删除的数据,然后调用删除方法。假设我们要删除名称为 Alice 的用户,我们可以使用以下代码:

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

--------------
  ------ -
    ----- -------
  -
------------ -- -
  -- ------ -
    ---------------------- -- -
      ----------------- -----------
    ---
  -
---
展开代码

这个代码首先使用 findOne() 方法查询名称为 Alice 的用户。如果找到了这个用户,我们就可以使用它的 destroy() 方法来删除它。当 Promise 被解决时,它将打印出删除用户的信息。

高级用法

在使用 Sequelize 操作 PostgreSQL 数据库时,我们还可以使用一些高级用法。以下是一些示例代码:

  1. 使用 Sequelize 进行连接池配置:
-- -------------------- ---- -------
----- - --------- - - ---------------------

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

-------------- - ----------
展开代码

这个代码示例配置了一个连接池,最大连接数为 5,最小连接数为 0,空闲连接在 10 秒钟后被删除。同时,它还指定了 SSL 选项,以便安全地连接到数据库。

  1. 使用 Sequelize 进行原始 SQL 查询:
-- -------------------- ---- -------
----- - --------- - - ---------------------
----- --------- - --- --------------------- ----------- ----------- -
  -------- ----------
---

------ -- -- -
  ----- --------- --------- - ----- ----------------------- - ---- --------
  ---------------------
-----
展开代码

这个代码示例演示了如何使用 Sequelize 进行原始 SQL 查询。sequelize.query() 方法返回了查询结果和元数据,我们可以使用解构语法来分别获取它们。

结语

在这篇文章中,我们介绍了如何使用 Sequelize 操作 PostgreSQL 数据库。我们详细讲述了安装配置、基本的 CRUD 操作,以及一些高级用法。希望这篇文章能够为你在开发中的 PostgreSQL 使用提供帮助。

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

纠错
反馈

纠错反馈