什么是 Sequelize ORM?
Sequelize ORM(Object-Relational Mapping)是针对 Node.js 平台开发的一款 ORM 库,可以与多种数据库进行交互,如 MySQL、PostgreSQL、SQLite 等。它可以方便地将 JavaScript 对象映射到数据库的关系表中,并提供了一系列常见的数据库操作方法。
在开发 Web 应用程序时,使用 ORM 库可以极大地提高开发效率,减少手写 SQL 的错误和琐事,并且使用 ORM 可以封装数据库底层逻辑,使应用程序更加简洁。
安装 Sequelize 库
在开始使用 Sequelize ORM 之前,需要先将 Sequelize 库安装到项目中。可以使用 npm 管理工具进行安装:
npm install sequelize
同时,如果需要与其他数据库交互,还需要安装相应的驱动程序。以 MySQL 数据库为例,可以使用 mysql2 驱动程序:
npm install mysql2
建立 Sequelize 连接
在使用 Sequelize ORM 之前,需要建立与数据库的连接。在创建连接之前,需要指定用户名、密码、数据库名称、主机地址等相关参数。
const { Sequelize } = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql', });
在建立连接并成功连接到数据库后,可以对数据库执行 CRUD 操作。
定义模型
在使用 Sequelize ORM 进行存储操作之前,需要先定义数据模型。数据模型可以包含多个数据表,定义方式类似于创建类,指定一个表名和表结构。
-- -------------------- ---- ------- ----- - ------ --------- - - --------------------- ----- ---- ------- ----- -- ----------- -- --------- ---------- - ----- ----------------- ---------- ----- -- --------- - ----- ---------------- -- --------- --- ---- - -- - -- ----- ------ - ------------- ------ -- - ----- ------ - ------------------ -- ---------- ----- ---- - --------------------- ------------- - ------------------------------ ------ - -- -- --------------------- ------------------- ---------- ---------- ------ ---
在这个例子中,定义了一个名为 User 的数据模型,该数据模型将映射到名为 users 的表中。该表包含 firstName 和 lastName 两个字段,以及由 hooks 部分指定的密码哈希化方法。
执行 CRUD 操作
通过 Sequelize 进行的操作主要包括创建、读取、更新和删除操作。执行这些操作的方法与查询数据的方法类似。
创建记录
const newUser = await User.create({ firstName: 'Jane', lastName: 'Doe', password: '123456', });
读取记录
从数据表中读取记录有多种方式,可以直接读取整个表,也可以按条件筛选和排序。
读取所有记录:
const allUsers = await User.findAll();
按条件查询:
const filteredUsers = await User.findAll({ where: { firstName: 'Jane' } });
按属性排序:
const sortedUsers = await User.findAll({ order: [ ['firstName', 'ASC'], ['lastName', 'DESC'], ], });
以上都是对数据进行查询的方法,还可以对查询结果进行其他操作,例如求和、分组和连接等。
更新记录
可以通过修改模型实例属性或调用 update 方法来更新数据表中的数据。
const user = await User.findByPk(1); user.firstName = 'Alice'; user.lastName = 'Smith'; await user.save();
或者使用 update 方法:
await User.update({ firstName: 'Bob' }, { where: { id: 2 } });
删除记录
可以使用 destroy 方法将记录从数据表中删除。
const user = await User.findByPk(1); await user.destroy();
或者使用 destroy 方法删除匹配特定条件的所有记录。
await User.destroy({ where: { firstName: 'Alice' } });
总结
通过 Sequelize ORM,可以在 Node.js 应用程序中非常方便地进行数据库操作。只需要通过简单的配置、定义模型和执行 CRUD 操作,就可以轻松地与多种数据库进行交互。
使用 Sequelize ORM 进行开发,可以大大提高开发效率,减少手动编写 SQL 的时间和错误,让开发人员更专注于应用程序的逻辑。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6480f3a148841e989406c60a