gpt4 book ai didi

node.js - 使用sequelize关联不同的模型?

转载 作者:搜寻专家 更新时间:2023-11-01 00:28:58 27 4
gpt4 key购买 nike

您好,我正在尝试将我的用户模型与登录模型和 Question_details 模型相关联。但是,如果我使用的是 Question_details 关联,那么我会遇到 eagerLodingError :user is not associated to login 但如果我评论它那么它工作正常所以我怎样才能关联它?

但如果我与

User Model

module.exports = (sequelize, DataTypes) => {
var Users = sequelize.define('users', {
name: {
type: DataTypes.STRING(100)
}
phone: {
type: DataTypes.BIGINT,
unique: true
}
}, { freezeTableName: true });

Users.associate = function(models) {
Users.hasOne(models.login, {
foreignKey: 'user_id',
as: 'loginDetails'
});
};

Users.associate = function(models) {
Users.hasMany(models.customer_query, {
foreignKey: 'user_id',
as: 'queryDetails'
});
};

return Users;
};

登录模型

module.exports = (sequelize, DataTypes) => {
var Login = sequelize.define('login', {
user_id: {
type: DataTypes.INTEGER
},
user_name: {
type: DataTypes.STRING(500),
isEmail: true
},
password: {
type: DataTypes.STRING(500)
},
role_id: {
type: DataTypes.INTEGER
}
}, {
underscored: true,
freezeTableName: true
});

Login.associate = function(models) {
Login.belongsTo(models.users, {
foreignKey: 'user_id',
onDelete: 'CASCADE'
});
};
Login.associate = function(models) {
Login.belongsTo(models.roles, {
foreignKey: 'role_id',
onDelete: 'CASCADE'
});
};
return Login;

};

问题详情模型

    module.exports = function(sequelize, DataTypes) {
var questionDetails = sequelize.define('question_details', {
query_id: {
type: DataTypes.INTEGER
},
ques_type_id: {
type: DataTypes.INTEGER
},
created_by: {
type: DataTypes.INTEGER
},
question: {
type: DataTypes.TEXT
},

}, { freezeTableName: true });

questionDetails.associate = function(models) {
questionDetails.belongsTo(models.users, {
foreignKey: 'created_by',
onDelete: 'CASCADE'
});
};

return questionDetails;
};

最佳答案

您只需定义一次关联。当你第二次定义它时,你实际上是在覆盖它。所以对于 User 模型你实际上应该做...

    Users.associate = function(models) {
Users.hasOne(models.login, {
foreignKey: 'user_id',
as: 'loginDetails'
});

Users.hasMany(models.customer_query, {
foreignKey: 'user_id',
as: 'queryDetails'
});
};

对您的登录模型做类似的事情,因为您也在那里覆盖了 associate 函数。

祝你好运! :)

关于node.js - 使用sequelize关联不同的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com