Sequelize 实战:使用 MySQL 数据库存储数据

简介

Sequelize 是一个基于 Node.js 的 ORM(对象关系映射)框架,可以用来操作各种关系型数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等。它提供了简单易用的 API,使得开发者可以轻松地进行数据库操作,同时也支持事务处理、查询优化、关联查询等高级功能。在本文中,我们将以 MySQL 数据库为例,介绍 Sequelize 的使用方法,并提供一些实际的代码示例。

安装

首先,我们需要在项目中安装 Sequelize 和 MySQL 驱动程序。可以通过 npm 命令来完成安装:

其中,mysql2 是 Sequelize 的 MySQL 驱动程序。

连接数据库

在使用 Sequelize 之前,我们需要先建立与数据库的连接。可以通过以下方式来创建一个 Sequelize 实例:

const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql'
});

其中,'database'、'username' 和 'password' 分别是数据库名称、用户名和密码,而 host 和 dialect 则是数据库的主机名和类型,这里我们使用的是 MySQL。

定义模型

在 Sequelize 中,模型(Model)是指与数据库表对应的 JavaScript 类。通过定义模型,我们可以方便地进行增删改查等操作。下面是一个简单的模型定义示例:

const { DataTypes } = require('sequelize');

const User = sequelize.define('User', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  name: {
    type: DataTypes.STRING,
    allowNull: false
  },
  age: {
    type: DataTypes.INTEGER,
    allowNull: false
  }
});

在上面的示例中,我们定义了一个名为 User 的模型,它对应的数据库表的结构如下:

列名 数据类型 是否允许为空 是否为主键 是否自增
id INTEGER
name STRING
age INTEGER

其中,DataTypes 是 Sequelize 中提供的数据类型,支持的类型包括 INTEGER、STRING、BOOLEAN、DATE 等。通过设置 primaryKey 和 autoIncrement 属性,我们可以将 id 列设为主键并启用自增功能。

数据库操作

有了模型定义后,我们就可以进行数据库操作了。以下是一些常见的操作示例:

插入数据

const user = await User.create({
  name: 'John',
  age: 30
});
console.log(user.toJSON());

在上面的示例中,我们使用 create 方法插入一条数据,并将其打印出来。create 方法会返回一个 Promise,我们可以使用 await 关键字来等待其执行完成。

查询数据

const users = await User.findAll();
console.log(users.map(user => user.toJSON()));

在上面的示例中,我们使用 findAll 方法查询所有数据,并将它们打印出来。findAll 方法会返回一个数组,其中每个元素是一个 Sequelize 实例对象。我们可以使用 map 方法将其转换为普通的 JavaScript 对象。

更新数据

const user = await User.findOne({ where: { name: 'John' } });
user.age = 31;
await user.save();
console.log(user.toJSON());

在上面的示例中,我们使用 findOne 方法查询名为 John 的用户,并将其年龄更新为 31。最后,我们使用 save 方法将修改保存到数据库中。

删除数据

const user = await User.findOne({ where: { name: 'John' } });
await user.destroy();

在上面的示例中,我们使用 findOne 方法查询名为 John 的用户,并将其从数据库中删除。destroy 方法会返回一个 Promise,我们可以使用 await 关键字来等待其执行完成。

总结

在本文中,我们介绍了 Sequelize 的使用方法,并提供了一些实际的代码示例。通过使用 Sequelize,我们可以轻松地进行数据库操作,从而提高开发效率。希望本文能够对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658aeac0eb4cecbf2d03caa1


纠错
反馈