#sqlite #sequelize.js
#sqlite #sequelize.js
Вопрос:
в моей таблице 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}
а затем создать данные в БД, например
myModel.create(myModelObj);
Когда я так делаю, все в порядке. Но я ищу способ, которым я могу определить генераторы значений c, d в самом определении модели. Есть ли способ сделать это.
Комментарии:
1. Может быть, с использованием геттеров и сеттеров ?
Ответ №1:
Как упоминалось в документах, вы можете определить геттеры и сеттеры
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;
},
},
}
);