什么是 Sequelize
Sequelize 是一个支持多种 SQL 数据库的 ORM(Object Relational Mapping) 框架,它允许通过简化的方法来操作数据库。Sequelize 提供了基本的增删改查方法,也支持事务、表关联等高级操作。
安装和配置
使用 Sequelize 首先要安装它和需要操作的数据库,本文以 MySQL 为例。首先全局安装 Sequelize 和 mysql2 模块:
npm install --save sequelize mysql2
接下来需要建立一个 Sequelize 实例来操作数据库:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' });
其中,第一个参数是数据库名,第二个和第三个参数是用户名和密码,最后一个参数指定了数据库的连接信息。如果连接成功可以使用以下代码测试:
sequelize.authenticate().then(() => { console.log('Connection has been established successfully.'); }).catch(err => { console.error('Unable to connect to the database:', err); });
定义模型
在使用 Sequelize 时,需要定义模型来表示数据库中的表。模型是一个 JavaScript 对象,它和数据库表是一一对应的。下面我们定义一个 User 模型来表示用户表:
const { Model, DataTypes } = require('sequelize'); class User extends Model {} User.init({ // 属性名:类型 username: DataTypes.STRING, password: DataTypes.STRING }, { sequelize, modelName: 'user' });
这里使用了 ES6 的继承来继承了 Sequelize 的 Model 类,然后使用 init 方法定义了模型的属性并指定了数据类型。需要注意的是,属性字段名和数据类型需要一一对应。
同步数据模型
定义好模型之后,需要在数据库中创建对应的表。可以在 Sequelize 实例上调用 sync 方法来同步模型到数据库。
sequelize.sync({ force: true }).then(() => { console.log('Tables have been created.'); }).catch(err => { console.error('Unable to create tables:', err); });
这里 force 参数为 true 表示每次都会删除原有的表并重新创建,会导致原来的数据丢失,需要谨慎使用。
增查改删
定义完模型和同步数据模型以后,我们就可以开始使用 Sequelize 来完成增删改查操作了。
插入数据
使用 create 方法可以插入一条新数据:
User.create({ username: 'tom', password: '123456' }).then(user => { console.log(user.toJSON()); });
查询数据
使用 findAll 方法可以查询所有数据:
User.findAll().then(users => { console.log(users.map(user => user.toJSON())); });
使用 findOne 方法可以查询一条数据:
User.findOne({ where: { username: 'tom' } }).then(user => { console.log(user.toJSON()); });
更新数据
使用 update 方法可以更新一条数据:
User.update({ password: '654321' }, { where: { username: 'tom' } }).then(() => { console.log('User has been updated.'); });
删除数据
使用 destroy 方法可以删除一条数据:
User.destroy({ where: { username: 'tom' } }).then(() => { console.log('User has been deleted.'); });
总结
本文介绍了如何使用 Sequelize 操作 MySQL 数据库,包括安装和配置、定义模型、同步数据模型和增删改查操作等。Sequelize 的使用让我们可以用简单的代码完成数据库操作,避免了直接操作 SQL 语句带来的麻烦和错误,也减少了开发难度。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64acad1e48841e9894899d22