正如标题所述,我正在试图弄清楚如何在Sequelize中建立跟随者/追随者关系。我更倾向于实现我在Rails in Node中所做的事情。
所以继承Ruby代码
InRelationship Model类文件Ruby
belongs_to :follower, class_name: "User"
belongs_to :followed, class_name: "User"
在用户模型类文件Ruby
中# Relationships
has_many :active_relationships, class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy
has_many :following, through: :active_relationships, source: :followed
has_many :followers, through: :passive_relationships, source: :follower
has_many :passive_relationships, class_name: "Relationship", foreign_key: "followed_id", dependent: :destroy
现在我试图将此代码翻译成nodeJS Sequelize 用户文件 - NodeJS Sequelize
User.hasMany(models.Relationships, {
as: "active_relatinships",
foreignKey: "followerId"
})
User.hasMany(models.Relationships, {
as: "passive_relatinships",
foreignKey: "followingId"
})
Rleationship File NodeJS Sequelize
Relationships.belongsToMany(models.User,
{through: "active_relationships", as: "follower"})
Relationships.belongsToMany(models.User,
{through: "passive_relationships", as: "followed"})
我做错了什么?这是我尝试包含在我的查询中时得到的错误
未处理的拒绝错误:关系(active_relationships)与User!
无关这是我的包含查询
include: [
{model: models.Areas, as: "current_area" },
{model: models.VisitedAreas},
{model: models.OnTheWays, include: [
{model: models.Areas, as: "Area"}]},
{model: models.Settings},
{model: models.Pictures},
{model: models.Relationships, as: "passive_relationships"},
{model: models.Relationships, as: "active_relationships"}]
答案 0 :(得分:0)
我对这个问题有所了解!在我的选择上: 你应该用它。
User.hasMany(models.Relationships, {foreignKey: "followerId"})
include: [{model: models.Relationships}]
我写了一个关于这个问题的演示:
User.hasMany(Money, {foreignKey: "followingId"});
const result = await dbs.User.findAll({include: [{modedbs.Money}]});
console.log(JSON.stringify(result));