如何在 ES6 类中扩展 Sequelize 4 模型?

Mah*_*fuz 1 node.js sequelize.js

我想创建一个扩展 Sequelize Model 的类,如下所示

const Sequelize = require('sequelize');

class MyModel extends Sequelize.Model {
   constructor(){
     super()
   }

}
Run Code Online (Sandbox Code Playgroud)

但我需要知道如何为这个 MyModel 定义/初始化表名和属性。我希望 Sequelize.Model 的每个方法都变成 MyModel

小智 5

你可以这样做

定义模型 =>

const Sequelize = require("sequelize");
class MyModel extends Sequelize.Model {
  static init(sequelize, DataTypes) {
    return super.init(
      {
        myField: DataTypes.STRING
      },
      { sequelize }
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

并定义关联

const Sequelize = require("sequelize");
class MyModel extends Sequelize.Model {
  static associate(models) {
    this.myAssociation = this.belongsTo(models.OtherModel);
    // or
    this.myAssociation = models.MyModel.belongsTo(models.OtherModel);
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用它以获取更多详细信息,请参阅博客。我从这里使用它