Sequelize Eager加载错误

时间:2017-10-06 21:40:45

标签: node.js postgresql sequelize.js

我遇到一个问题,其中包含在我的查询中并不起作用,我无法弄清楚原因。我有两个模型:问题和建议。

var Suggestion = sequelize.define('Suggestion', {
    text: DataTypes.STRING
  }, {
    classMethods: {
      associate: function (models) {
        // associations can be defined here
        Suggestion.belongsTo(models.Question, {
          foreignKey: 'questionId',
          as: 'question'
        })

        Suggestion.belongsTo(models.User)

        Suggestion.hasMany(models.Vote)
      }
    }
  })

建议:

Question.findAll({
    include: [{
      model: models.Suggestion
    }]
  })

我的尝试查询在这里:

SequelizeEagerLoadingError: Suggestion is not associated to Question!

但我一直收到错误:function validateForm(){ let firstliGroup = document.getElementsByName("yesnocheck"); for(i=0; i<firstliGroup.length; i++){ //console.log(firstliGroup[i].checked); if(firstliGroup[i].checked == true){ console.log('success'); return true; } else { console.log('failed'); return false; } } }

他们为什么没有关联?它们在我的数据库中(基于我写的迁移)。如果我目前正在做错,我应该如何设置我的关联?我已经用这个问题看过其他人,但却无法弄清楚为什么我的关联错了。

3 个答案:

答案 0 :(得分:0)

Sequelize不再支持classMethods。 classMethods和instanceMethods被删除。

一个:

const Model = sequelize.define('Model', {
    ...
}, {
    classMethods: {
        associate: function (model) {...}
    },
    instanceMethods: {
        someMethod: function () { ...}
    }
});

新:

const Model = sequelize.define('Model', {
    ...
});

//类方法

Model.associate = function (models) {
    ...associate the models`enter code here`
};

参考:http://docs.sequelizejs.com/manual/tutorial/upgrade-to-v4.html#breaking-changes

答案 1 :(得分:0)

由于语法错误,我遇到了此错误。我正在使用

include: {
  model: db.modelOne,
  model: db.modelTwo
}

,不带方括号[]。包括它解决了错误。 无论如何,mentioned docs提供了更简洁的选择,以递归方式包括所有外部模型:

User.findAll({ include: [{ all: true, nested: true }]});

答案 2 :(得分:0)

请检查您的 init-models.js,代码如下:

  question.hasMany(suggestion, { as: 'suggestion', foreignKey: 'questionId'});
  suggestion.belongsTo(question, { as: 'question', foreignKey: 'questionId'});

存在吗?

来自

"sequelize": "^6.6.2"