Express.js 中使用 Sequelize 操作 PostgreSQL 数据库

阅读时长 7 分钟读完

在现代 Web 开发中,数据库是不可或缺的一部分。考虑到大多数开发者的需求,PostgreSQL 是一个非常好的选择。在这篇文章中,我将向大家介绍如何在 Express.js 中使用 Sequelize 操作 PostgreSQL 数据库,并给大家提供详细的指导和示例代码。

什么是 Express.js?

Express.js 是一个基于 Node.js 平台的 Web 开发框架,它提供了一系列的功能和工具帮助我们构建 Web 应用程序。Express.js 是非常流行的选择,因为它易于学习且灵活。同时,它还有一个庞大的社区可以帮助我们解决问题。

什么是 Sequelize?

Sequelize 是一个 Node.js 中非常流行的 ORM 框架,它可以帮助我们更轻松地操作各种关系型数据库,并且提供了很多功能,比如模型定义,查询构建器等等。同时,它还支持多种数据库类型,包括 PostgreSQL、MySQL、SQLite 等。

使用 Sequelize 连接 PostgreSQL 数据库

首先,我们需要在 Node.js 环境中安装 Sequelize 和 pg(PostgreSQL Node.js 驱动程序):

其次,我们需要在 Express.js 中创建 Sequelize 实例以连接到 PostgreSQL 数据库:

其中,'database'、'username' 和 'password' 分别是我们连接 PostgreSQL 数据库的相关信息,'localhost' 是数据库所在的主机名,'postgres' 是我们选用的数据库驱动。

定义一个模型

在 Sequelize 中,我们需要定义一个模型(Model)以与数据库中的表相对应。下面是一个简单的示例:

在这里,我们定义了一个名为 User 的模型,它有两个属性:username 和 password,均为字符串类型。而 sequelize 和 'user' 分别指定了定义的模型与之相关联的 Sequelize 实例和表名。

有了模型,我们就可以在我们的应用程序中使用它来操作数据库了,比如插入、查询、更新、删除等等。

查询数据

我们可以通过模型中的静态方法 findAll() 和 findOne() 来查询数据库中的数据。比如,我们可以用下面的方法查询所有的用户:

我们也可以按照某个特定的条件查询数据,比如,下面的操作查询 username 为 'john' 的用户:

创建数据

我们可以使用模型的 create() 方法来向数据库中插入一条新的记录。下面,我们来举一个例子:

在这里,我们创建了一个名为 newUser 的变量并将其赋值为新插入的用户信息。我们可以在 create() 方法的参数中指定相应的属性值,然后调用它来插入一条数据。

更新数据

在 Sequelize 中,我们可以使用模型的 update() 方法来更新数据库中的一条记录。比如,下面的操作将用户 'john' 的密码更新为 'new-password':

删除数据

我们可以使用模型的 destroy() 方法来从数据库中删除一条记录。比如,下面的操作将删除 username 为 'john' 的用户:

完整示例

下面是一个完整的 Express.js、Sequelize 和 PostgreSQL 示例代码:

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

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

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

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

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

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

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

定制化代码

在使用 Sequelize 进行数据库操作时,我们可以根据自己的需求来进行一些定制化的设置。具体来说,我们可以在 Sequelize 的构造函数的第三个参数中指定一些选项,来对其进行相关的配置。例如,我们可以将 Sequelize 的 log 类型设置为 console.log,以使其在控制台中输出相关的信息:

我们还可以在 Sequelize 中启用 UTC 时间戳,并将 timestamps 属性设置为 true:

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

注意,在使用 timestamps 属性时,模型必须包含 createdAt 和 updatedAt 这两个字段。

结论

在本文中,我们学习了如何在 Express.js 中使用 Sequelize 操作 PostgreSQL 数据库。我们了解到,Sequelize 是一个提供了许多 ORM 功能的 Node.js 框架,它能够帮助我们更轻松地管理关系型数据库,并且在开发中具有重要的指导意义。在学习和使用 Sequelize 框架时,使用本文提供的示例代码来快速上手,同时也可以对代码进行修改和进一步定制化,以满足自己的开发需求。

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

纠错
反馈

纠错反馈