什么是 Sequelize?
Sequelize 是一个 Node.js 的 ORM(Object-Relational Mapping)框架,可以将关系数据库转换为 JavaScript 中的对象,从而在应用程序中使用。它支持 PostgreSQL、MySQL、SQLite 和 MSSQL 等关系型数据库。
ORM 常被用于简化数据操作,让开发者不用关注 SQL 语句的写法,只需要使用不同的方法来操作数据即可。
如何使用 Sequelize?
要使用 Sequelize,需要先通过 npm 安装它:
npm install --save sequelize
然后在代码中引入:
const { Sequelize } = require('sequelize');
连接数据库
在使用 Sequelize 之前,需要先创建一个数据库连接。建立连接需要使用 Sequelize 构造函数,并传入数据库连接的详细信息:
const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql', // ... });
其中,database
是要连接的数据库名称,username
和 password
是数据库的用户名和密码。host
表示数据库所在的主机名,dialect
表示要使用的数据库类型。
定义模型
在使用 Sequelize 时,需要先定义模型。模型是数据库表的一个抽象,包含了表的字段、数据类型和验证规则等信息。我们可以通过 Sequelize 的 define()
方法来定义模型:
const User = sequelize.define('User', { // 模型属性 id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: Sequelize.STRING, allowNull: false }, age: { type: Sequelize.INTEGER, allowNull: false } });
这里我们定义了一个名为 User
的模型,包含了三个属性:id
、name
和 age
。其中,id
是主键,使用了 autoIncrement
表示自增,name
和 age
必填,使用了 allowNull
来表示。
同步模型
定义完模型之后,需要使用 Sequelize 的 sync()
方法来同步模型和数据库:
sequelize.sync() .then(() => { console.log('连接成功!'); }) .catch((error) => { console.error('连接失败:', error); });
这里的 sync()
方法会自动创建数据库表,如果表已经存在,则不会再次创建。
增删改查
在定义完模型和同步模型后,就可以使用 Sequelize 来进行增删改查操作了。下面是一些常用的操作示例:
插入数据
const user = await User.create({ name: 'Tom', age: 18 }); console.log(user.toJSON());
这里使用了 create()
方法来插入一条数据,返回的是插入的数据对象。
查询数据
// 查询所有数据 const users = await User.findAll(); console.log(users.map((user) => user.toJSON())); // 根据条件查询数据 const users = await User.findAll({ where: { name: 'Tom' } }); console.log(users.map((user) => user.toJSON())); // 查询指定条数的数据 const users = await User.findAll({ limit: 10 }); console.log(users.map((user) => user.toJSON()));
这里使用了 findAll()
方法来查询数据,可以使用 where
条件来设置查询条件,也可以使用 limit
来设置查询条数。
更新数据
const res = await User.update({ age: 20 }, { where: { name: 'Tom' } }); console.log('受影响的行数:', res[0]);
这里使用了 update()
方法来更新数据,可以使用 where
条件来设置更新条件。
删除数据
const res = await User.destroy({ where: { name: 'Tom' } }); console.log('受影响的行数:', res);
这里使用了 destroy()
方法来删除数据,可以使用 where
条件来设置删除条件。
总结
Sequelize 是一个非常优秀的 Node.js ORM 框架,可以让开发者更加方便地操作数据库。在使用 Sequelize 时,需要先定义模型,然后同步模型和数据库,最后就可以使用常用的增删改查操作了。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a8d744add4f0e0ff2124fe