为什么当我使用 sequelize 生成模型时,它的结构与包含 class 而不是 const 的其他模型不同?

Why when I generate a model with sequelize has a different structure than others that includes a class instead of a const?

我是 sequelize 的新手,我看过很多关于如何使用 sequelize 创建模型的教程,但当我这样做时,这是创建它的结构。

'use strict';
const {
  Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
  class User extends Model {
    /**
     * Helper method for defining associations.
     * This method is not a part of Sequelize lifecycle.
     * The `models/index` file will call this method automatically.
     */
    static associate(models) {
      // define association here
    }
  };
  Users.init({
    nickname: DataTypes.STRING,
    password: DataTypes.STRING
  }, {
    sequelize,
    modelName: 'Users',
  });
  return User;
};

但我看到的另一种结构是“最流行”的。

'use strict';

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    nickname: DataTypes.STRING,
    password: DataTypes.STRING
  },{
    underscored: true
  });
  return User;
};

如何在控制台中使用“sequelize model:generate”生成具有第二个结构的模型?

感谢您的宝贵时间。

根据官方documentation,这两种定义模型的方法是等价的。 define 更受欢迎,因为它是一种比 classes 更老的方法,仅此而已。我建议使用较新的,因为我认为它会有更长的生命周期和支持。