Sequelize 是一个 Node.js ORM 框架,可以让开发者将 JavaScript 的对象和关系型数据库的表进行映射,从而实现快速、方便、安全的数据交互。本文将介绍 Sequelize 的增删改查操作,提供详细的示例和实践指导。
安装与使用
在开始操作前,请先安装 Sequelize 和相应的驱动,如 mysql2、pg、sqlite3 等:
npm install --save sequelize mysql2
接着,在代码文件中引入 Sequelize:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});注意,这里的参数需要根据你的实际情况进行修改,分别是数据库、用户名、密码、主机地址和使用的数据库类型。然后,我们就可以开始进行增删改查操作了。
增加数据
使用 Sequelize 创建新数据的方式有两种,一种是使用 Model.create() 方法,另一种是使用 Model.build() 方法。
在使用 Model.create() 方法时,需要传入一个对象,包含要创建的数据的具体键值对:
const User = sequelize.define('user', {
name: Sequelize.STRING,
age: Sequelize.INTEGER
});
User.create({ name: 'Tom', age: 18 });另外一个方法是 Model.build(),它只是创建了一个实例对象,需要调用 save() 方法才能保存到数据库中:
const user = User.build({ name: 'Tom', age: 18 });
user.save();查询数据
查询数据是 Sequelize 最常用的操作之一。可以使用 Model.findOne() 方法查询单条数据,也可以使用 Model.findAll() 方法查询多条数据。
查询单条数据
查询单条数据时,可以使用 Model.findOne() 方法,它接受一个对象作为查询条件。例如,我们想查询名字为 Tom 的用户,可以这样写:
const user = await User.findOne({ where: { name: 'Tom' } });这里的 await 是因为 Model.findOne() 是一个异步方法。
查询多条数据
查询多条数据时,可以使用 Model.findAll() 方法,它接受一个对象作为查询条件,返回一个数组。例如,我们想查询年龄大于 18 岁的用户:
const users = await User.findAll({ where: { age: { [Sequelize.Op.gt]: 18 } } });这里,使用了一个 Sequelize 提供的运算符 Op.gt,它表示大于。也可以使用 Op.lt、Op.eq、Op.ne 等运算符。
更新数据
使用 Sequelize 更新数据非常方便,只需要调用 Model.update() 方法即可。它接受两个参数,第一个参数是要更新的属性,第二个参数是查询条件:
await User.update({ name: 'Jerry' }, { where: { name: 'Tom' } });这样就将名字为 Tom 的用户更新成了 Jerry。
删除数据
删除数据也很简单,只需要调用 Model.destroy() 方法即可。它接受一个对象作为查询条件:
await User.destroy({ where: { name: 'Tom' } });这样就将所有名字为 Tom 的用户删除了。
总结
本文介绍了 Sequelize 的增删改查操作,包括创建新数据、查询单条数据、查询多条数据、更新数据和删除数据等。Sequelize 提供了非常方便的 API,使得开发者可以快速地使用 JavaScript 对象操作关系型数据库。对于前端开发者来说,掌握 Sequelize 能够让我们更加自如地进行数据交互,提高开发效率。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/645b398d968c7c53b0d942ca