node.js - Nodejs 扩展 Sequelize 模型

标签 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,
        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() 参数构造它。
  • 你确实在 sequelize 模型中调用了 Agent 所以需要参数对吗?也许类 modelsequelize 变量
  • 关于node.js - Nodejs 扩展 Sequelize 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63104679/

    相关文章:

    javascript - Hapi/Joi 验证 - 不同的 Joi.regex 取决于另一个键值

    javascript - 使用 Handlebars 渲染对象的嵌套数组

    C++基类加载函数

    c++ - 如果可以将其置于私有(private)状态,为什么还要使用 static const (int/string/..)?

    c++ - 如何创建 "weak"函数并将其用于对象?

    java - 在这种情况下,我应该使用什么模式/解决方案来避免 `instanceof` ?

    java - 如何在java中使用反射扩展基类的多个类

    javascript - 如何让 nodemon 监视 dotenv-flow 文件?

    angularjs - 在没有 Mongoose 用户的情况下使用 Passport-facebook(MEAN 堆栈中没有 Mongo)

    java - 将实例变量设为私有(private)只会对子类有利吗?