前言
Sequelize 是一种 Node.js 中的 ORM 工具。ORM 是 Object-Relational Mapping(对象-关系映射)的缩写。ORM 映射的是关系数据库与面向对象语言之间的相互转换。Sequelize 提供了易于使用的 API 以及丰富的功能,使得在 Node.js 应用中使用关系型数据库更加的方便。
本篇文章将会简单地介绍什么是 ORM,以及它的作用。我们还将介绍如何在 Node.js 应用中使用 Sequelize,并给出实际例子。
ORM 介绍
ORM 是一种将面向对象语言与关系型数据库之间的变量映射自动化的技术。当我们在关系型数据库中存储数据时,数据通常以表格的形式存储,而在面向对象语言中,数据是以对象的形式存储的。ORM 的作用就是将这两种不同的数据存储形式进行映射,使我们能够更方便地从数据库中访问数据。
使用 ORM 的主要好处之一是,它能够帮助我们更好地组织代码,让我们避免写大量的 SQL 语句。相反,我们可以将我们的代码组织成易于理解和维护的形式。
Sequelize 介绍
Sequelize 是一个基于 Node.js 的 ORM 工具。Sequelize 提供了丰富的功能,它支持多种数据库(PostgreSQL, MySQL, MariaDB, SQLite 和 MSSQL 等),为我们提供了强大的数据查询 API 以及事务处理支持等。
安装和配置
首先,我们需要将 Sequelize 安装到我们的 Node.js 应用中。可以通过 npm 在 Node.js 应用中安装 Sequelize:
npm install sequelize
当 Sequelize 安装完成后,我们需要引入它并定义一个新的 Sequellize 实例:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql', });
这个代码片段定义了一个 Sequelized 实例,它连接到一个名为「database」的 MySQL 数据库,使用用户名和密码作为登录凭据。
我们可以选择使用 Aurelia、TypeScript、Angular 或其他一些 Node.js 应用程序来配合 Sequelize 的使用。
数据模型
在开始使用 Sequelize 执行查询之前,我们需要先定义我们的数据模型。数据模型是一个描述数据库表格的 JavaScript 类。Sequelize 将我们的类转换成一个实际的数据库表。
我们可以将我们的数据模型定义在一个 JavaScript 类文件中,如下所示:
-- -------------------- ---- ------- ----- --------- - --------------------- -- -- --------- ----- --------- - --- --------------------- ----------- ----------- - ----- ------------ -------- -------- --- ----- ---- ------- --------------- -- -- -- ---- - ---------- - ---------- ----------------- -- --------- -------- --------- ----------------- -- -------- -------- -- - --------- - --
在这个例子中,我们定义了一个名为「User」的类。Sequelize 会将这个类转换成一个名为「users」的数据库表。表格包含两个字段,一个是名为「firstName」的字符串类型,一个是名为「lastName」的字符串类型。
查询
一旦我们有了数据模型,我们就可以开始查询数据库表。Sequelize 提供了丰富的查询 API,让我们可以轻松地查询、修改和删除表中的数据。
查询所有行
我们可以通过调用模型的 findAll
方法,查询表格中的所有行:
const users = await User.findAll();
这个代码片段将会查询「users」表格中的所有行,并将结果作为一个数组返回。
查询指定行
如果我们只需要查询表格中的特定行,我们可以使用 findById
方法。这个方法接受一个 ID 参数,并返回一个包含与该 ID 匹配的行的对象。
const user = await User.findById(1);
这个代码片段将会查询「users」表格中,主键为 1 的记录,并将结果作为一个对象返回。
创建新行
我们使用 create
方法来创建新行:
const newUser = await User.create({ firstName: 'firstName', lastName: 'lastName' });
这个代码片段将会创建一个新的「users」表格行,并将 firstname 和 lastname 的值分别设置为「fistName」和「lastName」。
更新行
如果我们需要更新一个已存在行的值,我们可以通过调用模型的 update
方法来完成这个操作:
const user = await User.findById(1); user.firstName = 'newFirstName'; user.lastName = 'newLastName'; await user.save();
这个代码片段将会查询「users」表格中 ID 为 1 的记录,并将它的 firstName 和 lastName 字段更新为「newFirstName」和「newLastName」。
删除行
最后,如果我们需要从一个表格中删除一条记录,我们可以通过调用模型实例的 destroy
方法来完成这个操作:
const user = await User.findById(1); await user.destroy();
这个代码片段将会删除「users」表格中 ID 为 1 的记录。
总结
在本文中,我们介绍了 ORM 是什么以及它的作用,并详细讲解了 Sequelize 的使用方法,包括有关安装、配置、数据模型的创建和修改表格的更新。此外,我们还给出了不同类型的查询方法的示例,例如 findAll、findById、create、update 和 destroy。Sequelize 提供了一个强大的 API 和优秀的功能,使得我们可以更轻松地在 Node.js 应用中使用关系型数据库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64729b6c968c7c53b00405d2