在 Express.js 应用程序中使用 Sequelize ORM:一篇入门指南

阅读时长 6 分钟读完

Sequelize 是一种流行的 Node.js ORM(对象关系映射)库,可以方便地将应用程序与 SQL 数据库集成。在这篇文章中,我们将介绍在 Express.js 应用程序中使用 Sequelize ORM 的入门指南。

前置要求

在阅读本文之前,您需要对以下技术有一定的了解:

  • Node.js 和 Express.js 框架;
  • SQL 数据库和相关概念(例如表、列、主键、外键等);
  • JavaScript 和 ES6,特别是 Promise 和 async/await。

如果您不熟悉其中某些技术,请先学习相关知识。

安装 Sequelize

要使用 Sequelize ORM,首先需要安装它。您可以使用 npm 包管理器进行安装:

此外,如果您要将 Sequelize 与某个特定的数据库一起使用,请安装相应的数据库驱动程序。例如,要使用 Sequelize 与 MySQL 数据库一起使用,请安装以下软件包:

更多数据库驱动程序,请参阅 Sequelize 文档。

定义模型

在 Sequelize 中,您需要定义一个模型来表示数据库中的表。每个模型都有一个名称和一组属性。属性指定了表中的列名称、数据类型、是否允许为空等等。例如,以下代码定义了一个名为 User 的模型:

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

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

此代码定义了一个包含 username、email 和 password 列的 User 模型。每列都是字符串类型,不允许为空。要定义其他数据类型或属性,请参阅 Sequelize 文档。

连接到数据库

在使用 Sequelize ORM 之前,您需要连接到数据库。以下代码示例将建立与 MySQL 数据库的连接:

此连接将使用 user 和 pass 认证信息连接到本地运行的 MySQL 数据库中的 db 数据库。您应该使用自己的数据库连接详细信息。

创建表

在定义模型后,您需要创建相应的表。可以使用 sync 方法来自动创建或更新数据库表。但是请注意,这是一个不安全的操作,并且不适用于生产环境。在生产环境中,您应该使用数据库迁移工具(例如 Sequelize CLI)来管理表结构变化。

以下代码示例创建了 User 模型对应的表:

此代码使用了一个异步立即执行函数来调用 sync 方法。force 参数强制删除现有表(如果存在)并重新创建。

添加数据

要向数据库添加数据,请使用 create 方法。以下代码示例创建了一个名为 John 的用户:

这将创建一个名为 John 的用户,并将其添加到 User 表中。create 方法返回一个 Promise,该 Promise 包含表示新行的 Sequelize 模型实例。toJSON 方法将该实例转换为 JSON 对象,以便以可读格式进行输出。

查询数据

要从数据库中检索数据,请使用 findAll 方法。以下代码示例查询了 User 表中的所有用户:

这将返回 User 表中的所有行,并将其作为 Sequelize 模型实例数组返回。map 方法用于将每个实例转换为 JSON 对象格式。

您还可以使用 where 参数来筛选结果。例如,以下代码示例将仅查询符合条件的用户:

更新数据

要更新数据库中的数据,请使用 update 方法。以下代码示例将用户名为 John 的用户的 email 属性更改为 john_new@example.com

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

update 方法返回一个包含更新行数和受影响行的数组。通过将 returning 参数设置为 true,您可以指定返回更新的行作为 Sequelize 模型实例。

删除数据

要从数据库中删除数据,请使用 destroy 方法。以下代码示例将所有 username 为 john 的用户从 User 表中删除:

此代码将所有满足条件的用户从 User 表中删除,并返回更新的行数。

结论

在这篇文章中,我们介绍了如何在 Express.js 应用程序中使用 Sequelize ORM。我们学习了如何定义模型、连接到数据库、创建表、添加、查询、更新和删除数据。感谢您阅读本文,并希望它可以帮助您快速入门 Sequelize ORM!

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

纠错
反馈