在 Node.js 的后端开发中,我们经常需要使用到数据库,而 Sequelize 是目前较为流行的一个 Node.js ORM 框架。它提供了许多操作数据库的方法,方便我们进行增、删、改、查等常见数据库操作。这篇文章将重点介绍 Sequelize 中的常见操作,并附带实例代码,帮助读者更好地掌握这些操作。
安装 Sequelize
首先,我们需要在项目中安装 Sequelize。可以使用 npm 安装:
npm install --save sequelize
同时,我们还需要安装适配你所使用的数据库的相应的驱动。例如,使用 MySQL 数据库,可以安装 mysql2:
npm install --save mysql2
连接数据库
在进行任何数据库操作之前,我们需要先连接数据库。在 Sequelize 中,通过下面的代码可以连接到一个 MySQL 数据库:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', port: 3306, dialect: 'mysql', });
其中,'database' 表示数据库名,'username' 表示用户名,'password' 表示密码,'localhost' 表示数据库所在的主机名,'3306' 表示端口号,'mysql' 表示数据库类型。
创建模型
在 Sequelize 中,模型指的是数据库中的一张表。我们首先需要定义一个模型,才能进行增、删、改、查等操作。下面的代码演示了如何定义一个模型:
-- -------------------- ---- ------- ----- - --------- - - --------------------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ----- -- ----- - ----- ----------------- ---------- ------ -- ---- - ----- ------------------ ---------- ------ -- ---
上述代码定义了一个名为 'User' 的模型,它包含三个字段:'id'、'name'、'age'。其中,'id' 是主键,且自增;'name'、'age' 均不允许为空。
常见操作
增
在 Sequelize 中,插入一条数据的方法是使用模型的 create() 方法。下面是示例代码:
const user = await User.create({ name: '张三', age: 18 }); console.log(user.toJSON());
上述代码会往 'User' 表中插入一条数据,数据的 name 为 '张三',age 为 18。create() 方法返回一个 Promise 对象,resolve 的结果是插入的数据。console.log() 语句输出的是创建的结果。
删
在 Sequelize 中,删除数据的方法是使用模型的 destroy() 方法。下面是示例代码:
const count = await User.destroy({ where: { id: 1 } }); console.log(`删除了 ${count} 条数据`);
上述代码会删除 'User' 表中 id 为 1 的数据。destroy() 方法返回一个 Promise 对象,resolve 的结果是删除的数据条数。console.log() 语句输出的是删除的结果。
改
在 Sequelize 中,修改一条数据的方法是使用模型的 update() 方法。下面是示例代码:
const count = await User.update({ name: '李四' }, { where: { id: 2 } }); console.log(`修改了 ${count} 条数据`);
上述代码会把 'User' 表中 id 为 2 的数据的 name 改为 '李四'。update() 方法返回一个 Promise 对象,resolve 的结果是修改的数据条数。console.log() 语句输出的是修改的结果。
查
在 Sequelize 中,查询数据的方法是使用模型的 findAll()、findOne()、findByPk() 方法等。下面是示例代码:
const users = await User.findAll(); console.log(users.map((user) => user.toJSON())); const user = await User.findOne({ where: { name: '张三' } }); console.log(user.toJSON()); const user = await User.findByPk(2); console.log(user.toJSON());
上述代码演示了使用 findAll()、findOne()、findByPk() 方法的查询操作。findAll() 方法可以找到 'User' 表中的所有数据,findOne() 方法查询符合条件的第一条数据,findByPk() 方法查询主键为指定值的数据。findAll()、findOne() 方法返回一个 Promise 对象,resolve 的结果是查询到的数据数组或对象;findByPk() 方法返回一个 Promise 对象,resolve 的结果是查询到的数据对象。console.log() 语句输出的是查询的结果。
总结
本文对 Sequelize 中常见的操作进行了详细的介绍,并提供了相应的示例代码。通过学习本文,读者可以掌握 Sequelize 的基本操作,并能在项目中使用 Sequelize 操作数据库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648812c448841e9894693ac6