Node.js Nodejs扩展Sequelize模型

Node.js Nodejs扩展Sequelize模型,node.js,class,oop,sequelize.js,Node.js,Class,Oop,Sequelize.js,我正在一个项目中使用Sequelize。这里有一些模型,例如: class Agents extends CommonModel { static init(sequelize) { return super.init({ ...super.baseFields, userId: { type: DataTypes.BIGINT, references: User }, ... }, {

我正在一个项目中使用Sequelize。这里有一些模型,例如:

class Agents extends CommonModel {

  static init(sequelize) {
    return super.init({
      ...super.baseFields,
      userId: {
        type: DataTypes.BIGINT,
        references: User
      },
      ...
    }, {
        sequelize,
        timestamps: true,
        paranoid: true
      })
  }
同样在CommonModel中:

class CommonModel extends Model {

  static baseFields = {
    createdBy: {
      type: DataTypes.INTEGER,
      references: {
        model: 'Users',
        key: 'id'
      }
    },
    ...
  }
  
}
现在,问题是,init函数中的
sequelize
参数是什么?(我不直接叫它)。什么时候调用init?(虽然没有构造函数) 这是一种特殊的设计模式吗

  • 我认为关键字
    super
    引用父类,并使用
    super.init()
    参数构造它
  • 您确实在
    Agent
    模型中调用了
    sequelize
    ,所以需要参数,对吗?也许类
    模型
    续集
    变量

  • 我只是不明白这个参数。任何地方都没有定义
    sequelize
    参数。(如果它是
    implements
    而不是
    extend
    ,那没问题,因为这是
    策略
    设计模式。但在这里,我感到困惑。@Vahid Najafi可能只是一个声明。所以当调用代理类实例时,它可以将sequelize类作为构造函数。我实际上也感到困惑