sqlite - Sequelize 生成的列 sqlite

标签 sqlite sequelize.js

我在 sqlite 中的表有四列 a、b、c、d。
c 中的值是 a-bda+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 的值生成器。有没有办法做到这一点。

最佳答案

如前所述 in the docs 您可以定义 getter 和 setter

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

关于sqlite - Sequelize 生成的列 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683517/

相关文章:

javascript - 获取数据并将其存储(优化)到移动应用程序(Ionic、Cordova/Phonegap)的最佳方式

python - 如何在 Python 中转义 SQLite 表/列名称的字符串?

javascript - 如何从 Javascript 将 Json 保存到 django 数据库中

android - SQLite Android 中的表名限制

mysql - 在nodejs-postgresql中显示类别、子类别及其子类别层次结构树(sequelize js)

javascript - 类型错误 : Cannot read property 'findAll' of undefined (expressjs)

SQLite - 删除所有空格

sequelize.js - Sequelize where 子句与函数变成 '1=1'

javascript - 什么包含[].duplicating : true does in sequelize?

mysql - 关联表Sequelize js中获取自定义字段的方法