Solución:
Poniendo
A.hasOne(B)
y
B.belongsTo(A)
en el mismo archivo me resolvió el problema.
Necesita agregar sus asociaciones en una función llamada associate(models)
. los models
El argumento contiene todo tu existente Model
definiciones codificadas por su nombre de definición (“user_tm” en este caso).
var User = sequelize.define('user_tm', {
// ... user_tm definition
});
var UserEmployee = sequelize.define('user_employee_tm', {
// ... user_employee_tm definition
});
UserEmployee.associate = (models) => {
UserEmployee.belongsTo(models.user_tm, {foreignKey: 'ID', as: 'Employee'});
};
Resulta que descubrí que solo necesito definir mi Objeto de UserEmployee Aquí está el código que he corregido
const sequelize = require('../config/connectionDatabase');
var Sequelize = require('sequelize');
const User = require('../models/user');
const Company = require('../models/company');
var UserEmployee = sequelize.define('user_employee_tm', {
DateJoin: {
type: Sequelize.DATE
},
UserID: {
type: Sequelize.INTEGER,
references: {
model: User,
key: "UserID"
}
},
CompanyID: {
type: Sequelize.INTEGER,
references: {
model: Company,
key: "CompanyID"
}
}
});
UserEmployee.belongsTo(Company, {as: 'Company', foreignKey: 'CompanyID'});
UserEmployee.belongsTo(User, {as: 'User', foreignKey: 'UserID'});
module.exports = UserEmployee;
no es necesario establecer como asociado debido a que Sequelize ha establecido el método asociarlos, y también he arreglado la relación.
Espero que otros que tienen el mismo problema conmigo puedan cuidarlo, sin hacer 2 modelos terminan en 1 archivo.
PD Gracias por doublesharp por su ayuda para señalar mi error.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)