Sequelize 入门(二)

阅读时长 4 分钟读完

在上一篇文章中,我们已经介绍了什么是Sequelize以及如何在项目中使用它。本篇文章将进一步介绍Sequelize中的模型定义、查询以及关联操作,让你对Sequelize更加熟练的运用于项目之中。

定义模型

首先我们需要定义模型,模型是Sequelize中的一个重要功能。

创建模型实例时,需要引入sequelize和DataTypes。sequelize用来定义模型结构,DataTypes则用来定义模型的数据类型。

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

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

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

这个例子定义了一个User模型,具有firstName,lastName以及email三个属性。其中,email属性是一个string类型,除了使用DataTypes.STRING之外,我们还可以指定它的属性,如isEmail验证规则。

你可能注意到最后一个参数是一个具有属性的对象,它是可选的。timestamps:false表示在我们查询该模型时不包含createdAt和updatedAt属性。

查询

Sequelize的查询可以使用promise或者callback来获取结果。如下所示:

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

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

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

这个例子中,我们使用create方法创建了一个新的用户记录,并调用toJSON方法以获取该用户的JSON字符串表示形式。我们随后使用findOne方法根据firstName查询了该用户,并打印出了它的JSON版本。最后,我们又使用findAll方法查询了所有用户,同样使用toJSON方法输出全部结果。

关联操作

Sequelize还支持模型之间的关联。我们可以创建多个模型,并定义相互之间的关系,以便快速检索和操作这些模型。

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

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

这个例子中,我们定义了一个帖子模型和一个用户模型,其中一个用户可以拥有多篇帖子,而每篇帖子只能属于一个用户。hasMny和belongTo方法使用来定义这种关系的。

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

这里,我们首先创建了一个新的用户,然后创建了一个新的帖子,并将该帖子与该用户相关联。最后,我们使用findOne方法查找了John的所有记录,并使用include选项将其相关聚合到一起,以便快速比较。

结论

Sequelize是一个功能强大的ORM,通过使用它,我们可以更加轻松快速的操作数据库。这篇文章虽然只是初步介绍了Sequelize的一些基础操作,但是通过使用这些基础操作,读者可以逐步掌握Sequelize的更多操作,提高自身的技术水平,并更加快速地开发出优秀的前端应用。

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

纠错
反馈

纠错反馈