首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过sequelize-auto创建的ES6中的模型不起作用

通过sequelize-auto创建的ES6中的模型不起作用
EN

Stack Overflow用户
提问于 2021-07-28 08:02:49
回答 1查看 77关注 0票数 1

我通过执行以下操作生成了MariaDB数据库的模型:

npx sequelize-auto -o "./models" -l es6 -d databaseName -h 127.0.0.1 -u 'user' -x 'pass'

其中一个模型的输出如下:

代码语言:javascript
复制
import _sequelize from 'sequelize';
const { Model, Sequelize } = _sequelize;

export default class Catalog extends Model {
  static init(sequelize, DataTypes) {
  super.init({
    id: {
      autoIncrement: true,
      type: DataTypes.INTEGER.UNSIGNED,
      allowNull: false,
      primaryKey: true
    },
      name: {
      type: DataTypes.TINYINT,
      allowNull: true
    },
    comments: {
      type: DataTypes.TEXT,
      allowNull: true
    },
    origin: {
      type: DataTypes.INTEGER.UNSIGNED,
      allowNull: true,
      references: {
        model: 'Entities',
        key: 'id'
      }
    }
  }, {
    sequelize,
    tableName: 'Catalog',
    timestamps: true,
    indexes: [
      {
        name: "PRIMARY",
        unique: true,
        using: "BTREE",
        fields: [
          { name: "id" },
        ]
      },
      {
        name: "compositionPlace",
        using: "BTREE",
        fields: [
          { name: "compositionPlace" },
        ]
      },
    ]
  });
  return Catalog;
  }
}

The initModels.js

代码语言:javascript
复制
....
export default function initModels(sequelize) {
  var Catalog = _Catalog.init(sequelize, DataTypes);
...

在我的index.js中,我有:

代码语言:javascript
复制
import initModels from "./models/init-models.js";
var models = initModels(sequelize);

我得到了这个错误:

代码语言:javascript
复制
/backend/node_modules/sequelize/lib/model.js:968
    if (this.sequelize.isDefined(this.name)) {
                       ^

TypeError: this.sequelize.isDefined is not a function

我不能导入模块,因为sequelize似乎正在查找模型名称,但它找不到它,因为它已被声明为Class。

你知道怎么解决这个问题吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 02:58:52

我找到问题了。我使用的是sequelize而不是Sequelize,这是代码,我有:

代码语言:javascript
复制
import sequelize from "sequelize";

然而,它应该是

代码语言:javascript
复制
import Sequelize from "sequelize";

另外,在使用sequelize之前,我必须做一个新的Sequelize:

代码语言:javascript
复制
const sequelize = new Sequelize(
  database.database,
  database.username,
  database.password,
  database
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68552920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档