Sequelize 与 PostgreSQL 的结合使用方法

阅读时长 9 分钟读完

在开发 Web 应用程序时,数据库是不可或缺的一部分。虽然在市面上有很多种不同的数据库可供选择,但 PostgreSQL 是一种经过广泛应用和验证的关系数据库,因此在很多场景下都是一个不错的选择。而 Sequelize 是一种支持多种数据库的 ORM 框架,它可以轻易地与 PostgreSQL 集成在一起。本文将向您展示如何使用 Sequelize 和 PostgreSQL 来构建性能优秀、可维护和可扩展的 Web 应用程序。

Sequelize 是什么?

Sequelize 是一种 Node.js 的 ORM(Object-Relational Mapping,对象关系映射)框架,它可以让我们以 JavaScript 代码的形式操作数据库,而不是直接使用 SQL 语句。Sequelize 支持多种数据库,包括 PostgreSQL、MySQL、SQLite 和 MariaDB 等,并且拥有许多有用的功能,例如:

  • 支持事务和断线重连
  • 支持连接池
  • 支持复杂的查询(联表查询、子查询、聚合函数等)
  • 处理模型之间的关联关系(一对一、一对多、多对多)
  • 支持事务和断线重连

如何使用 Sequelize 和 PostgreSQL?

在开始使用 Sequelize 和 PostgreSQL 之前,你需要先安装必要的软件:

创建数据库和数据表

首先,需要创建一个数据库和一张数据表,我们可以使用 PostgreSQL 中的 psql 命令行工具来完成。在终端中执行以下命令,以创建一个名为 mydb 的数据库和一张名为 users 的数据表。

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

上述命令将会创建一个 users 表,该表包含了 id、name、email、age、created_at 和 updated_at 共计六个字段,其中 id 字段为主键,使用 SERIAL 类型,id 的值会在插入时自动递增;email 字段为唯一键,即不允许存在重复的值。

连接到数据库

在使用 Sequelize 之前,您需要配置连接到 PostgreSQL 数据库的信息。在项目根目录下创建一个名为 config.json 的文件,该文件包含连接数据库所需的信息,例如:

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

上述配置文件指定了开发环境下的连接信息,我们使用的用户名是 postgres,密码也是 postgres,数据库名为 mydb,连接的主机为 127.0.0.1,端口为 5432,使用的数据库类型为 PostgreSQL。

一旦有了配置文件,我们就可以使用 Sequelize 来连接到数据库了。根据上面的配置信息,我们可以编写如下代码:

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

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

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

上述代码中,我们首先加载 Sequelize 模块。然后从 config.json 文件中读取与当前环境匹配的配置信息,并使用 Sequelize 构造函数创建一个 Sequelize 实例。接着,我们调用 authenticate() 方法以测试连接是否正常,如果成功,则输出 Connection has been established successfully. 的信息,否则输出错误信息。

使用模型定义数据表

使用 Sequelize 查询数据库时,需要先定义一个模型,以便能够在 JavaScript 中对数据库进行操作。模型定义了数据表的结构,字段名、类型、默认值等信息。

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

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

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

上述代码中,我们首先从 connection.js 文件中引入了已经创建的 Sequelize 实例。然后,我们使用 Sequelize.define() 方法来定义一个名为 user 的模型。在这个模型中,我们定义了五个字段:name、email、age、createdAt 和 updatedAt,在这里,name、email 和 age 的类型都是字符串,且不允许为空,email 字段还必须唯一。

创建数据记录

创建数据记录的过程也很简单。只需调用 Sequelize 中的 create() 方法,即可将数据插入到数据库中。

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

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

上述代码中,我们创建了一个名为 newUser 的用户对象,并将其传递给 User.create() 方法进行插入。在上述代码中,我们使用了 Promise 语法来处理 create() 方法的结果。如果插入成功,则打印 Created user: { name: 'Tom Smith', email: 'tom.smith@example.com', age: 30 } 的信息,否则打印错误。

查询数据记录

使用 Sequelize 查询数据记录非常简单,只需要调用模型上的 findAll()findOne() 方法即可。

上述代码中我们调用模型上的 findAll() 方法来查找所有的用户记录,并将查询结果打印出来。如果查询出错,则打印错误信息。

更新数据记录

与插入和查询类似,使用 Sequelize 更新数据记录也很简单。只需要调用模型上的 update() 方法,即可更新指定的数据记录。

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

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

上述代码中,我们将 id 为 1 的用户记录的 name 字段更新为 Jerry Brown。其中,{ name: 'Jerry Brown' } 表示要更新的数据,{ where: { id: 1 } } 表示要查询的条件。

删除数据记录

删除数据记录的过程也是类似的。只需要调用模型上的 destroy() 方法,即可删除指定的数据记录。

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

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

上述代码中,我们删除了 id 为 1 的用户记录。其中,{ where: { id: 1 } } 表示要查询的条件。

总结

本文向您展示了如何使用 Sequelize 和 PostgreSQL 来构建性能优秀、可维护和可扩展的 Web 应用程序。我们介绍了如何使用 Sequelize 库来连接数据库、定义模型、插入数据、查询数据、更新数据、以及删除数据。希望本文对您有所帮助,感谢您的阅读。

以上代码仅供参考,具体代码应根据您自己系统的需求进行修改。

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

纠错
反馈