Sequelize 是一个 Node.js ORM(Object-Relational Mapping) 框架,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server 等。Sequelize 的使用可以让我们更方便地操作数据库,本文将重点介绍 Sequelize 的 Model 实例化与 CRUD 操作。
Model 实例化
在 Sequelize 中,Model 是操作数据库的核心。在使用 Model 之前,我们需要先定义一个 Model,定义的方式有两种:使用 Sequelize.define() 方法或者使用 sequelize.define() 方法。下面我们以使用 Sequelize.define() 方法为例:
// javascriptcn.com 代码示例 const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' }); const User = sequelize.define('user', { firstName: { type: Sequelize.STRING, allowNull: false }, lastName: { type: Sequelize.STRING }, age: { type: Sequelize.INTEGER } });
在上面的代码中,我们通过 sequelize.define() 方法定义了一个名为 User 的 Model,它包含三个属性:firstName、lastName 和 age。其中,firstName 是必须的,因为我们在定义时设置了 allowNull: false。
CRUD 操作
定义好 Model 后,我们可以使用该 Model 进行 CRUD 操作。
创建
使用 Model.create() 方法可以创建一条记录,例如:
User.create({ firstName: 'John', lastName: 'Doe', age: 30 }).then(user => { console.log(user.toJSON()); });
上面的代码将创建一条记录,其 firstName 为 'John',lastName 为 'Doe',age 为 30。创建成功后,我们可以通过 user.toJSON() 方法将其转换为 JSON 格式并输出。
读取
使用 Model.findAll() 方法可以读取多条记录,例如:
User.findAll().then(users => { console.log(users.map(user => user.toJSON())); });
上面的代码将读取所有 User 记录,并通过 map() 方法将其转换为 JSON 格式并输出。
使用 Model.findByPk() 方法可以根据主键读取一条记录,例如:
User.findByPk(1).then(user => { console.log(user.toJSON()); });
上面的代码将根据主键为 1 的记录读取一条 User 记录,并通过 toJSON() 方法将其转换为 JSON 格式并输出。
更新
使用 Model.update() 方法可以更新多条记录,例如:
User.update({ age: 31 }, { where: { firstName: 'John' } }).then(() => { console.log('Done'); });
上面的代码将更新所有 firstName 为 'John' 的 User 记录的 age 属性为 31。
使用 Model.findByPk() 方法可以根据主键更新一条记录,例如:
User.findByPk(1).then(user => { user.age = 32; return user.save(); }).then(() => { console.log('Done'); });
上面的代码将根据主键为 1 的记录读取一条 User 记录,并将其 age 属性更新为 32。
删除
使用 Model.destroy() 方法可以删除多条记录,例如:
User.destroy({ where: { firstName: 'John' } }).then(() => { console.log('Done'); });
上面的代码将删除所有 firstName 为 'John' 的 User 记录。
使用 Model.findByPk() 方法可以根据主键删除一条记录,例如:
User.findByPk(1).then(user => { return user.destroy(); }).then(() => { console.log('Done'); });
上面的代码将根据主键为 1 的记录读取一条 User 记录,并将其删除。
总结
本文介绍了 Sequelize 的 Model 实例化与 CRUD 操作,包括 Model 的定义、创建、读取、更新和删除操作。通过本文的学习,读者可以更深入地理解 Sequelize 的使用,更方便地操作数据库。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655b97ebd2f5e1655d5bb2ae