Node.js 中使用 Sequelize 进行 ORM 操作的详细教程

简介

Sequelize 是一个基于 Node.js 的 ORM 框架,可以在 Node.js 中操作各种不同类型的数据库。ORM(Object-Relational Mapping)是一种编程技术,它可以将面向对象语言中的对象转换为关系型数据库中的表。

在本篇文章中,我们将详细介绍如何使用 Sequelize 在 Node.js 中进行 ORM 操作。我们将从安装 Sequelize 开始,一步一步讲解它的用法,并给出代码示例以帮助读者更好地理解。

安装

首先需要在 Node.js 中安装 Sequelize。在命令行中执行以下命令:

连接数据库

在使用 Sequelize 前,需要先连接数据库。在使用 Sequelize 时,我们需要传递一些数据库连接信息,如数据库名称、用户名、密码等。在本例中,我们将使用 MySQL 数据库。

在项目中创建一个 config.json 文件,用于存储数据库连接信息:

接下来再创建两个文件:

  • db.js:用于创建 Sequelize 实例并连接数据库。
  • sequelize.js:用于获取 Sequelize 实例。

db.js

sequelize.js

上述代码中,我们使用了环境变量获取当前运行环境(开发环境、测试环境或生产环境),在 config.json 中获取相应的数据库连接配置,并创建 Sequelize 实例和连接数据库。我们还测试了连接是否成功,并输出了连接成功或失败的信息。

创建表格

在 Sequelize 中,我们使用模型(Model)来管理数据表。所谓模型就是指一张数据表对应的 JavaScript 类。通过 Sequelize,我们可以将查询语句转换为可用的 JavaScript 方法,使用方便。

在这里我们需要创建一个 Book 模型,用于对数据库的 book 表进行操作。首先需要在 models 目录下创建一个 book.js 文件,写入下面的代码:

上述代码中,我们首先引入了 Sequelize 和我们刚刚创建的 sequelize.js 文件。此外,我们使用 define 方法创建了一个名为 Book 的模型,并定义了 book 表格的属性。其中,id 实为主键,且这个值是自增的;title、author、isbn、publishedAt 是各自对应的字段,都不能为空。

增删改查(CRUD)

有了模型后,我们就可以进行增删改查操作了。下面我们将分别介绍增删改查操作的代码示例。

创建记录

上述代码中,我们通过 create 方法创建了一条新纪录,并将属性和属性值传入其中。需要特别注意的是,我们使用了 then 和 catch 方法处理异步请求的结果,其中 then 用于处理成功请求的结果,catch 用于处理失败请求的结果。

查询记录

上述代码中,我们使用 findAll 方法查询 author 为 “张三” 的图书记录。findAll 方法返回一个数组,包含所有满足条件的记录。在返回的结果中,我们使用了 for...of 语法,而非 forEach 方法,主要是为了更符合 ES6 的语法规范,并方便理解。

更新记录

上述代码中,我们使用 update 方法更新所有 author 为 “张三”的图书记录的 title 字段为 “JavaScript 实战”。update 方法返回更新的记录数,我们使用 updatedCount[0] 输出更新的记录数。

删除记录

上述代码中,我们使用 destroy 方法删除所有 author 为 “张三”的图书记录。destroy 方法返回被删除的记录数。

总结

本文从安装 Sequelize 开始,一步一步讲解了使用 Sequelize 在 Node.js 中进行 ORM 操作,并给出了相应的示例代码。希望本文能为初学者提供一些帮助,让大家更加深入理解 Sequelize。如有疑问或不足之处,欢迎留言指出。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65332cb17d4982a6eb69e231


纠错
反馈