节点Sequelize追随/跟随关系

时间:2017-04-01 02:37:05

标签: node.js foreign-keys sequelize.js

正如标题所述,我正在试图弄清楚如何在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"}]

1 个答案:

答案 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));

这是我的结果:enter image description here