Я прочитал документацию и много исследовал, но я все еще не мог найти решение этой проблемы, может кто-нибудь подсказать мне? Что я делаю не так?
Ошибка:
C:\Users\Marlon\Desktop\Projeto\EuroKT\backend\node_modules\sequelize\lib\associations\mixin.js:49
throw new Error(`${this.name}.belongsToMany called with something that's not a subclass of Sequelize.Model`);
^
Error: User.belongsToMany called with something that's not a subclass of Sequelize.Model
at Function.belongsToMany (C:\Users\Marlon\Desktop\Projeto\EuroKT\backend\node_modules\sequelize\lib\associations\mixin.js:49:13)
at Object.<anonymous> (C:\Users\Marlon\Desktop\Projeto\EuroKT\backend\dist\src\data\models\user.js:81:6)
Класс пользователя:
import { Model, DataTypes } from 'sequelize';
import { DbInstance } from '../../main/context';
import { Attributes } from '../../commons/Helpers';
import * as Config from '../../config.json';
import Permission from './permission';
import Project from './project';
var _reSync = Config.Database.ForceSync;
var _instance = new DbInstance().getInstance();
class User extends Model {
id!: number;
status: string;
name!: string;
registryCode!: string;
phone!: string;
email!: string;
password!: string;
permissionId!: number;
}
User.init({
id: {
type: new DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
status: {
type: new DataTypes.CHAR(2)
},
name: {
type: new DataTypes.STRING(30),
allowNull: false
},
registryCode: {
type: new DataTypes.STRING(12),
allowNull: false
},
phone: {
type: new DataTypes.STRING(12)
},
email: {
type: new DataTypes.STRING(50)
},
password: {
type: new DataTypes.STRING(100)
},
permissionId: {
type: new DataTypes.INTEGER,
references: {
model: 'Permission',
key: 'id'
}
}
}, {
sequelize: _instance,
tableName: 'User',
timestamps: false
});
User.belongsTo(Permission, { foreignKey: 'permissionId', as: 'Permission' });
User.belongsToMany(Project, { through: 'User_project' });
User.sync({ force: _reSync });
export default User;
Класс проекта:
import { Model, DataTypes } from 'sequelize';
import { DbInstance } from '../../main/context';
import * as Config from '../../config.json';
import User from './user';
var _reSync = Config.Database.ForceSync;
var _instance = new DbInstance().getInstance();
class Project extends Model {
id!: number;
status: string;
name!: string;
}
Project.init({
id: {
type: new DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
status: {
type: new DataTypes.CHAR(2)
},
name: {
type: new DataTypes.STRING(30),
allowNull: false
}
}, {
sequelize: _instance,
tableName: 'Project',
timestamps: false
});
Project.belongsToMany(User, { through: 'User_project' });
Project.sync({ force: _reSync });
export default Project;
Я хочу, чтобы сиквелиз автоматически создал таблицу отношений N: N 'User_Project'. использовал эту документацию в качестве примера https://sequelize.org/v5/manual/associations.html