Sequelize | 5. 实例 - 常用方法
2021-01-12 本文已影响0人
ShadowFieldEric
模型
const { Sequelize, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('db_stu', 'db_username', 'db_password', {
host: '127.0.0.1',
dialect: 'mysql',
pool: {
max: 50,
min: 0,
idle: 5000
}
});
class UserModel extends Model { }
UserModel.init({
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING,
allowNull: true
},
birthday: {
type: DataTypes.DATEONLY,
allowNull: true
},
sex: {
type: DataTypes.ENUM('male', 'female'),
allowNull: true
},
teacherId: {
type: Sequelize.INTEGER,
references: {
model: 't_teachers',
key: 'id'
}
},
Enable: {
type: DataTypes.BOOLEAN,
allowNull: true
}
}, {
sequelize,
modelName: 't_users',
freezeTableName: true,
timestamps: false
});
常用方法
创建实例(插入数据)
-
build方法+save方法
(async () => {
await UserModel.sync({ force: true }) // force:true => delete it if exists
let user = UserModel.build({
first_name: 'Guangming',
last_name: 'Lee',
birthday: '2020-12-31',
sex: 'male',
teacher_id: 1
})
await user.save()
})();
-
create方法
(async () => {
await UserModel.sync({ force: true }) // force:true => delete it if exists
let user = await UserModel.create({
first_name: 'Guangming',
last_name: 'Lee',
birthday: '2020-12-31',
sex: 'male',
teacher_id: 1
})
})();
其他常用方法
-
destroy方法,摧毁实例(删除数据库的数据)
(async () => {
let user = UserModel.build({
id: 1
})
await user.destroy();
})();
或者
(async () => {
let user = await UserModel.create({
first_name: 'Guangming',
last_name: 'Lee',
birthday: '2020-12-31',
sex: 'male',
teacher_id: 1
});
await user.destory();
})();
-
reload方法(从数据库拉数据)
(async () => {
let user_reload = UserModel.build({
id: 2
})
await user_reload.reload();
console.log(user_reload);
})();