A与B无关

时间:2017-09-20 15:29:15

标签: node.js associations sequelize.js

在网上看到类似的问题/错误,他们都没有帮助我......

未处理拒绝SequelizeEagerLoadingError:任务未与用户关联!

我的用户路线

router.get('', function (req, res) {
  models.User.findAll({
    include: [
      {
        model: models.Task,
        as: 'tasks'
      }
    ]
  }).then(function (users) {
    res.send(users);
  });
});

用户模型

'use strict';

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    first_name: DataTypes.STRING,
    last_name: DataTypes.STRING,
    email: DataTypes.STRING
  }, {
    underscored: true
  });

  User.associations = function (models) {
    User.hasMany(models.Task, { as: 'tasks' });
  };

  return User;
};

任务模型

'use strict';

module.exports = (sequelize, DataTypes) => {
  const Task = sequelize.define('Task', {
    name: DataTypes.STRING
  }, {
    underscored: true
  });

  Task.associations = function (models) {
    Task.belongsTo(models.User);
  };

  return Task;
};

我将它们联系起来,并建立了双向关系..

1 个答案:

答案 0 :(得分:0)

当您使用finder函数与作为选项关联时,Sequelize无法找到该别名,因为它未在任何地方明确定义。请尝试这个:

User.associations = function (models) {
  User.hasMany(models.Task, { as: 'tasks' });
};

希望这有帮助。