【发布时间】:2021-01-14 10:29:34
【问题描述】:
我正在尝试利用模型实例方法,如 doc 中所述。所以我定义User类如下:
class User extends Model {
addRole(role){
let roles = this. roles;
roles[role] = true;
this.roles = roles;
this.save();
}
removeRole (role) {
let roles = this.roles;
delete roles[role];
this.save();
}
hasRole (role){
return this.roles[role] != null;
}
}
User.init({
// some attributes
,
roles:{
type: DataTypes.JSON,
allowNull: false,
}
}, { sequelize});
我希望在任何User 实例中使用方法addRole()、removeRole() 和hasRole()。
所有方法无法将其更改保存到数据库的问题。 (只能阅读!)
// example
let user = null;
// get the first user to test.
User.findAll()
.then(users =>{
user = users[0];
user.addRole("admin");
console.log(user.roles); // {admin: true}
user.save();
// However the changes don't appear in the database.
});
【问题讨论】:
标签: javascript node.js sqlite sequelize.js