【问题标题】:Sequelize: TypeError: Cannot read property '_modelAttribute' of undefined续集:TypeError:无法读取未定义的属性“_modelAttribute”
【发布时间】:2019-06-25 20:45:57
【问题描述】:

我正在尝试按关联模型的数量进行排序,并且从 Sequelize 收到以下错误

无法读取未定义的属性“_modelAttribute”

我有以下代码:

db.user.belongsToMany(db.user, {
  as: "User",
  through: "UserFollowers",
  foreignKey: "user_id"
});
db.user.belongsToMany(db.user, {
  as: "Follower",
  through: "UserFollowers",
  foreignKey: "follower_id"
});

   User.findAll({
          attributes:["username",db.sequelize.literal('(SELECT COUNT(*) FROM "public"."Users","public"."UserFollowers" WHERE "Users".user_id = "UserFollowers".user_id GROUP BY "Users".user_id)'),'followercount'],
          include:[{model:User,as:'Follower'}],
          order:[{ model: User, as: 'Follower' }[db.sequelize.literal('followercount')],'DESC']
      }).then(users => {
          res.json(users)
      })

感谢您的帮助!

【问题讨论】:

    标签: javascript sql node.js sequelize.js


    【解决方案1】:

    看一眼代码,问题似乎出在排序条款上。 将其更改为:

    order: [[{ model: User, as: 'Follower' }, 'followercount', 'DESC']]
    

    如果还是不行,请尝试通过添加logging: console.log 记录查询结果。这应该可以帮助您通过分析 sql 查询来确定失败的部分。

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多