Я думаю, вам будет проще, если вы объявите свои ассоциации в своих классах в соответствии с документацией ... но вам придется добавить некоторые вещи, чтобы заставить их работать ..
Я не совсем понимаю, почему между Сотрудником и Пользователем существуют отношения hasMany, в ваших моделях нет ничего, что указывало бы на то, что ... Ваши модели предполагают, что Пользователь принадлежит Сотруднику, а Сотрудник имеет одного Пользователя, но только потому, что не с помощью идентификатора внешнего ключа, вы должны указать sequelize, какие ключи использовать для создания ассоциации ...
Может быть, что-то вроде
module.exports = function (sequelize, DataTypes) {
const Employee = sequelize.define('employee', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
username: {
type: Sequelize.STRING,
},
password: {
type: Sequelize.STRING
},
employeename:{
type:Sequelize.STRING
},
},
}, {
freezeTableName: true,
tableName: 'employee',
});
Employee.associate = function (models) {
models.Employee.hasOne(models.User, { as: 'Employee', foreignKey: 'username', sourceKey: 'username' });
};
return Employee;
};
module.exports = function (sequelize, DataTypes) {
const User = sequelize.define('user', {
id:{
type:Sequelize.INTEGER, //crete columns
autoIncrement:true,
primaryKey:true
},
username:{
type:Sequelize.STRING
},
email:{
type:Sequelize.STRING
}
},
}, {
freezeTableName: true,
tableName: 'user',
});
User.associate = function (models) {
models.User.belongsTo(models.Employee, { as: 'User', foreignKey: 'username', sourceKey: 'username' });
};
return User;
};
и затем, где вы это сделали: вам нужно добавить недостающую часть
// define model/table
const models = {
Employee: sequelize.import('../model/employee'),
User:sequelize.import('../model/user')
};
//You were missing this
Object.keys(models).forEach((modelName) => {
if ('associate' in models[modelName]) {
// console.log(models[modelName]);
models[modelName].associate(models);
}
});
models.Sequelize = Sequelize;
models.sequelize = sequelize;
Я сомневаюсь, что вы можете скопировать и вставить это и заставить это работать без нескольких исправлений, поскольку я просто набрал это здесь и не проверял это в VSCode, но это суть ..