定义类(模型)
1 /**
2 * 参数1 用于指定表的名称
3 * 参数2 用于指定表中的字段
4 * 参数3 用于配置表的一些额外信息
5 */
6 let User = sequelize.define('user', {
7 id: {
8 type: Sequelize.INTEGER, // INTEGER类型
9 primaryKey: true, // 主键
10 autoIncrement: true, // 自增长
11 },
12 name: {
13 type: Sequelize.STRING, // varchar(255)类型
14 unique: true, // 唯一键
15 allowNull: false, // 不允许为空
16 },
17 age: {
18 type: Sequelize.TINYINT, // 最小的int类型
19 defaultValue: 66, // 默认值
20 },
21 gender: {
22 type: Sequelize.ENUM(['男', '女']), // 枚举类型
23 defaultValue: '男'
24 }
25 }, {});
- 定义好模型后,还需要调用 sequelize 连接对象的 sync 方法来创建表
创建表
- sequelize根据模型创建表时,会自动将指定的表名变成复数
- sequelize根据模型创建表时,会自动增加两个字段 createdAt 和 updatedAt ,这两个字段用于记录数据创建的时间与数据更新的时间
配置表的额外信息
1 {
2 freezeTableName: true, // 不要将表名变成复数
3 tableName: 'student', // 自定义表名为 student
4 timestamps: false, // 不需要创建createdAt和updatedAt这两个字段
5 indexes: [ // 指定索引
6 { // 一个对象代表一个索引
7 name: 'idx_age', // 索引名称
8 fields: ['age'], // 根据age字段生成索引
9 }
10 ]
11 }