我来为你详细讲解一下“Node.JS使用Sequelize操作MySQL的示例代码”的完整攻略。
1.准备工作
在开始使用Sequelize操作MySQL之前,你需要安装以下两项组件:
- MySQL数据库:由于本文是以MySQL为例,所以我们需要安装MySQL数据库。如果你已经装好了MySQL数据库,可以跳过这一步;
- Node.js:Sequelize是一个基于Node.js的ORM框架,因此需要首先安装Node.js。这里我们使用最新版本的12.14.1作为示例。你可以通过官网下载对应版本的Node.js,也可以使用nvm等工具安装和管理Node.js。
2.安装Sequelize
安装完Node.js后,我们需要使用npm来安装Sequelize。打开命令行窗口,输入以下命令:
npm install sequelize sequelize-cli mysql2 --save
上述命令会同时安装Sequelize、Sequelize-cli和mysql2模块。其中mysql2是Sequelize所使用的MySQL驱动,Sequelize-cli是Sequelize的命令行接口。
3.创建数据库和数据表
在开始编写代码前,需要先创建数据库和相应的数据表。我们以创建一个user表为例,新建一个名为“mydatabase”的数据库,并在其中创建表user。
CREATE DATABASE mydatabase;
USE mydatabase;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
`createdAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.连接数据库
接下来我们在Node.js中建立连接,使用Sequelize连接到MySQL数据库。首先新建一个名为“app.js”的文件,并在其中编写如下代码:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('mydatabase', 'root', 'password', {
host: 'localhost',
dialect: 'mysql',
logging: false,
});
代码中我们通过Sequelize构造函数创建了一个sequelize实例,用于连接MySQL数据库。其中,mydatabase为需要连接的数据库名,root为MySQL的用户名,password为MySQL的密码。host参数用于指定MySQL所在的主机名,默认为localhost,dialect参数指定使用的数据库类型,此处为mysql。
5.定义模型并创建数据表
在进行模型定义之前,我们先来熟悉一下Sequelize的术语。
- Model:模型,相当于表结构的转换器
- Instance:实例,相当于表结构的一行数据
- Association:关联,相当于表结构之间的关联关系
接下来我们定义一个User模型,并为其映射到user表:
const User = sequelize.define('user', {
name: {
type: Sequelize.STRING,
allowNull: false,
},
age: {
type: Sequelize.INTEGER,
allowNull: false,
},
}, {
timestamps: true,
underscored: true,
tableName: 'user',
});
(async () => {
await sequelize.sync({ force: true });
})();
代码中我们使用sequelize.define()方法定义一个名为User的模型,并指定其与user表映射。定义模型时,我们传入了一个对象,用于描述数据表中的各个字段及其数据类型。这个对象的每一个属性代表一个数据表字段,它包含以下几个属性:
- type:定义数据表字段的数据类型,Sequelize支持的数据类型包括STRING、TEXT、BOOLEAN、INTEGER、DECIMAL、DOUBLE、DATE、ENUM等;
- allowNull:定义字段是否允许为空;
- primaryKey:定义是否为主键,默认为false;
- autoIncrement:定义是否为自增长,默认为false;
- unique:定义是否为唯一键,默认为false;
- defaultValue:定义字段的默认值;
- field:定义数据表中的实际字段名,如果未指定该属性,则默认使用驼峰式命名法。
在定义完模型后,我们使用sequelize.sync()方法将模型映射到数据表中。
除了通过代码自动创建数据表外,我们也可以通过sequelize-auto工具从已有的MySQL数据库自动生成对应的代码文件,以进行数据操作。
6.进行数据操作
经过以上步骤的准备,我们终于可以对user表进行操作了。下面是两个示例:
- 创建数据
我们可以使用Sequelize提供的create()方法创建一条数据。使用方法如下:
const createUser = async () => {
await User.create({ name: 'Lucy', age: 18 });
console.log('create success');
};
createUser();
在上述代码中,我们使用User模型的create()方法来插入一条数据,这条数据的name值为Lucy,age值为18。
- 查询数据
使用Sequelize提供的findAll()方法来查询user表中的所有数据:
const getUsers = async () => {
const users = await User.findAll();
console.log(users);
};
getUsers();
在上述代码中,我们使用User模型的findAll()方法来查询user表中的所有数据,并通过console.log()打印出来。
到这里,我们已经完成了使用Sequelize操作MySQL的示例代码。如果您想深入学习Sequelize的详细使用方法,可以参考官方文档:https://sequelize.org/master/manual/getting-started.html。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.JS使用Sequelize操作MySQL的示例代码 - Python技术站