Sequelize 的使用方式之面向对象

阅读时长 6 分钟读完

在 Node.js 的 Web 开发中,Sequelize 是一种常用的 ORM(Object-Relational Mapping)框架。它可以实现 Node.js 与各种数据库的交互,并且可以依据 Model 对象生成对应的 SQL 语句从而实现数据操作。在 Sequelize 中,面向对象的使用方式是非常重要的。

Sequelize 中 Model 的定义

Model 是 Sequelize 中的一个重要概念,它对应数据库中的一个表。在 Sequelize 中,Model 通常使用类来定义,可以理解为一个 JavaScript 类对应了一个数据库表。

Sequelize 中 Model 类的定义通常包含以下部分:

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

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

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

在定义 Model 类时,需要继承 Model 类并定义表中的字段。每个字段都作为 Model 的属性进行定义,其中包括字段名、数据类型、是否允许为 NULL 等属性。

另外,sequelize 参数表示此 Model 实例所使用的 Sequelize 对象,而 modelName 则表示 Model 的名称,用于在其他地方进行引用。

Sequelize 中 Model 的使用

在定义完 Model 类之后,我们就可以在代码中使用它进行数据操作了。Sequelize 提供了多种操作方式,其中包括各种 CRUD(增删改查)操作。

查找数据

在上述代码中,findByPk 方法用于根据主键查找单个用户,而 findAndCountAll 方法用于查找所有用户并分页。

添加数据

在上述代码中,create 方法用于添加一条用户数据,其中 User 对应的是 Model 类名。

修改数据

在上述代码中,update 方法用于修改用户数据。

删除数据

在上述代码中,destroy 方法用于删除用户数据。

Sequelize 中 Model 的关联

Sequelize 的 Model 之间可以建立关联关系,常用的有一对一、一对多和多对多等关系。

一对一关系

在 Sequelize 中,一对一关系通常用于表示两个 Model 之间只有一个对应关系。例如,一个用户只有一个身份证号码,而一个身份证号码也只属于一个用户。

在上述代码中,hasOnebelongsTo 方法用于定义 Model 之间的关系,foreignKey 参数用于指定关联键的名称。

一对多关系

在 Sequelize 中,一对多关系通常用于表示一种 Model 有多个对应另一种 Model 的对象关系。例如,一个班级有多个学生。

在上述代码中,hasManybelongsTo 方法用于定义 Model 之间的关系,foreignKey 参数用于指定关联键的名称。

多对多关系

在 Sequelize 中,多对多关系通常用于表示两个 Model 之间可以有多个交叉关系。例如,一个学生可以加入多个社团,一个社团也可以有多个学生。

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

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

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

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

在上述代码中,belongsToMany 方法用于定义 Model 之间的关系,through 参数表示中间表名。

总结

Sequelize 是一个非常强大的 ORM 框架,可以轻松地将 Node.js 与各种数据库进行交互。在 Sequelize 中,面向对象的使用方式是非常重要的,它可以大大简化数据操作,并提高代码的可维护性和可读性。

在使用 Sequelize 时,不仅需要了解 Model 的定义和使用方法,还需要清楚 Model 之间的关联关系。只有掌握了这些内容,才能更好地使用 Sequelize 进行数据操作。

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

纠错
反馈