在上一篇文章中,我们已经介绍了什么是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