Beleza, eu tinha o banco criado com as tables já e populado, mas resolvi fazer desde o início mesmo, eui to tentando associar duas tabelas pelo Sequelize, mas ele tá me dando um erro, será que alguém pode me ajudar?
Segue meus models:
USUARIO:
module.exports = (sequelize, DataTypes) => {
const Usuario = sequelize.define("Usuario", {
nome: DataTypes.STRING,
cpf: DataTypes.STRING,
login: DataTypes.STRING,
password: DataTypes.STRING,
dataDeNascimento: DataTypes.DATEONLY,
resetPassword: DataTypes.STRING,
email: DataTypes.STRING,
isAdm: DataTypes.BOOLEAN,
})
Usuario.associate = (models) => {
Usuario.belongsToMany(models.Habilidade, {
through: "Usuarios_Habilidades",
as: "habilidades",
foreignKey: "usuario_id",
})
}
return Usuario
}
HABILIDADE:
const { Usuario } = require("./Usuario")
module.exports = (sequelize, DataTypes) => {
const Habilidade = sequelize.define("Habilidades", {
nome: DataTypes.STRING,
})
Habilidade.associate = (models) => {
Habilidade.belongsToMany(models.Usuario, {
through: "Usuarios_Habilidades",
as: "usuarios",
foreignKey: "habilidade_id",
})
}
return Habilidade
}
O erro:
[nodemon] starting node index.js
/home/igor/p/wise-systems-trainee/projeto2-terceira-tentativa/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: Usuario.belongsToMany called with something that's not a subclass of Sequelize.Model
at Function.belongsToMany (/home/igor/p/wise-systems-trainee/projeto2-terceira-tentativa/node_modules/sequelize/lib/associations/mixin.js:49:13)
at Function.Usuario.associate (/home/igor/p/wise-systems-trainee/projeto2-terceira-tentativa/models/Usuario.js:14:17)
at /home/igor/p/wise-systems-trainee/projeto2-terceira-tentativa/models/index.js:41:23
at Array.forEach ()
at Object. (/home/igor/p/wise-systems-trainee/projeto2-terceira-tentativa/models/index.js:39:17)
at Module.compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module.extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19)
[nodemon] app crashed - waiting for file changes before starting...
Segue o código no Git:
https://github.com/igorovisk/testeAPI.git