序列化生成的列sqlite

时间:2019-04-15 06:23:22

标签: sqlite sequelize.js

我在sqlite中的表有四个列a,b,c,d。

c中的值为a-b,而da+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的值生成器。有没有办法做到这一点。

1 个答案:

答案 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;
      },
    },
  }
);