我在sqlite
中的表有四个列a,b,c,d。
c
中的值为a-b
,而d
为a+b
。
我像定义我的模型
const myModel = sequelize.define('mymodel', {a:Sequelize.INTEGER,b:Sequelize.INTEGER,c:Sequelize.INTEGER,d:Sequelize.INTEGER}
并创建一个对象
var myModelObj = {a:10, b:20, c:function(){return this.a - this.b}, d:function(){return this.a + this.b}
然后像这样在db中创建数据
myModel.create(myModelObj);
当我这样做时,很好。但是我正在寻找一种方法,可以在模型定义本身中定义c,d的值生成器。有没有办法做到这一点。
答案 0 :(得分:0)
如in the docs所述,您可以定义获取器和设置器
const myModel = sequelize.define(
'mymodel',
{
a:Sequelize.INTEGER,
b:Sequelize.INTEGER,
c: {
Sequelize.INTEGER,
get() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a-b;
},
set() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a-b;
},
},
d: {
Sequelize.INTEGER,
get() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a+b;
},
set() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a+b;
},
},
}
);