我通过执行以下操作生成了MariaDB数据库的模型:
npx sequelize-auto -o "./models" -l es6 -d databaseName -h 127.0.0.1 -u 'user' -x 'pass'
其中一个模型的输出如下:
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
....
export default function initModels(sequelize) {
var Catalog = _Catalog.init(sequelize, DataTypes);
...在我的index.js中,我有:
import initModels from "./models/init-models.js";
var models = initModels(sequelize);我得到了这个错误:
/backend/node_modules/sequelize/lib/model.js:968
if (this.sequelize.isDefined(this.name)) {
^
TypeError: this.sequelize.isDefined is not a function我不能导入模块,因为sequelize似乎正在查找模型名称,但它找不到它,因为它已被声明为Class。
你知道怎么解决这个问题吗?
谢谢
发布于 2021-07-29 02:58:52
我找到问题了。我使用的是sequelize而不是Sequelize,这是代码,我有:
import sequelize from "sequelize";然而,它应该是
import Sequelize from "sequelize";另外,在使用sequelize之前,我必须做一个新的Sequelize:
const sequelize = new Sequelize(
database.database,
database.username,
database.password,
database
);https://stackoverflow.com/questions/68552920
复制相似问题