Node.js sequelize模型中的继承

Node.js sequelize模型中的继承,node.js,inheritance,sequelize.js,Node.js,Inheritance,Sequelize.js,我有一些非常常见的领域(CreatedBy、CreatedDate、LastUpdateBy、LastUpdateDate) 当我创建一个模型时,有什么方法可以在我的模型中继承这些属性吗 我看了看房间。但在那里找不到任何相关信息 目前,我正在创建的每个模型中指定这些属性: const Sequelize = require('sequelize'); const conn = require('../common/mssql-connection'); const Member = conn.

我有一些非常常见的领域<代码>(CreatedBy、CreatedDate、LastUpdateBy、LastUpdateDate)

当我创建一个模型时,有什么方法可以在我的模型中继承这些属性吗

我看了看房间。但在那里找不到任何相关信息

目前,我正在创建的每个模型中指定这些属性:

const Sequelize = require('sequelize');
const conn = require('../common/mssql-connection');

const Member = conn.define('Member', {
  id: {
    type: Sequelize.INTEGER,
    field: "Id",
    autoIncrement: true,
    primaryKey: true
  },
  name: {
    type: Sequelize.STRING,
    field: "Name"
  },//Everything below this line is repetitive in other models. Inheritance would be useful here.
  createdDate: {
    type: Sequelize.DATE,
    field: "CreatedDate"
  },
  createdBy: {
    type: Sequelize.STRING,
    field: "CreatedBy"
  },
  lastUpdatedDate: {
    type: Sequelize.DATE,
    field: "LastUpdatedDate"
  },
  lastUpdatedBy: {
    type: Sequelize.STRING,
    field: "LastUpdatedBy"
  }
})

module.exports = Member;
我也没有找到“标准”方法,但您可以截取Sequelize构造函数的原始定义函数,并处理您的默认字段:

 const originalDefine =  Sequelize.prototype.define; 

 Sequelize.prototype.define = function(tableName,fields){
    return originalDefine.call(this,tableName, {
          createdBy: { type: Sequelize.DataTypes.STRING,defaultValue:"default 'createdBy' value!!!!" },
           ...fields   
     })
 }
然后创建Sequelize实例

const sequelize = new Sequelize(...)

进行了一些调整以使其正常工作。但是这个概念很方便。谢谢