何时在 MYSQL 中使用 Sequelize?

Posted

技术标签:

【中文标题】何时在 MYSQL 中使用 Sequelize?【英文标题】:When to use Sequelize with MYSQL? 【发布时间】:2019-09-05 17:38:18 【问题描述】:

我正在尝试使用 Nodejs 学习 SQL 数据库,因为我只使用 Nodejs 使用 NoSQL(Mongodb)。我已经安装了 mysql 数据库,并且可以使用 Nodejs 从 mysql 数据库中检索数据。

我尝试使用 Nodejs、MySQL 和可能的 JWT 设置用户身份验证。我在网上找到的大多数身份验证教程都使用 Sequelize。我以前从未使用过sequelize。

将 sequelize 仅用于用户身份验证是一个好主意,还是对我的应用程序的其他部分有用/推荐的东西进行续集,我必须从我的数据库中提取数据?

【问题讨论】:

【参考方案1】:

首先,Sequelize 是 Node.js 的基于 Promise 的 ORM。

ORM 或对象关系映射是对象与关系数据库系统之间的映射过程。 ORM 就像两个系统之间的接口。 ORM 为开发人员提供了一些基本优势,例如节省时间和精力,更专注于业务逻辑。代码是健壮的而不是冗余的。 ORM 有助于以有效的方式管理对多个表的查询。最后,ORM(如 sequelize)能够连接不同的数据库(这在从一个数据库切换到另一个数据库时会派上用场)。

最后,Sequelize 并没有专门做用户认证。您也可以为此使用其他 ORM。

【讨论】:

【参考方案2】:

对象关系映射是一种使用面向对象范式从数据库中查询和访问数据的方法。 ORM 和开发人员一样喜欢对象,它适用于您选择的任何编程语言。

他们编写正确且优化的 SQL 查询,从而为开发人员消除了麻烦 它们使代码更易于更新、维护和重用,就像开发人员可以想到的那样,并将数据作为对象进行操作 ORM 将保护您的应用程序免受 SQL 注入攻击,因为该框架会为您过滤数据! 它还提供了连接池管理等附加功能。 ORM 提供了数据库抽象的概念,这使得切换数据库(从 maria db 切换到 MySQL 或反之亦然而不更改任何业务逻辑)更容易,并为您的应用程序创建一致的代码库。

参考: ORM:将数据重新思考为对象 ORM:将数据重新思考为对象(2018 年)。网址为:https://blog.yellowant.com/orm-rethinking-data-as-objects-8ddaa43b1410(访问日期:2021 年 4 月 24 日)。

【讨论】:

以上是关于何时在 MYSQL 中使用 Sequelize?的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中使用 sequelize 自动递增 id

Sequelize 中文教程

使用 sequelize 在 mySql 中定义静态函数(如在 mongoose 中)

如何在 MySql 中使用 sequelize 运行多个原始查询?

如何在 Sequelize 中使用 MySQL JSON 数据类型

如何在 mysql Sequelize 实例中拥有数组的数据类型?