簡體   English   中英

未處理的拒絕SequelizeEagerLoadingError:Sequelize

[英]Unhandled rejection SequelizeEagerLoadingError:Sequelize

這是我的模型:sensor.js

   'use strict';
    module.exports = (sequelize, DataTypes) => {
      const Sensor = sequelize.define('Sensor', {
        sensorName: DataTypes.STRING,
        user: DataTypes.INTEGER
      }, {});
      Sensor.associate = function(models) {
        Sensor.hasMany(models.User, {
            foreignKey: 'user'
        })
      };
      return Sensor;
    };

user.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    firstName: DataTypes.STRING,
    lastName: DataTypes.STRING,
    email: DataTypes.STRING
  }, {});
  User.associate = function(models) {
    User.belongsTo(models.Sensor, {
      foreignKey: 'user'
    })
  };
  return User;
};

在做的時候

Sensor.findAll({
  'raw':true,
  include: [{
    model: User
  }]
})
.then(function(result){
  console.log(result)
})

我收到以下錯誤:

未處理的拒絕SequelizeEagerLoadingError:用戶未與Sensor關聯!

您正在創建與對象關系同名的列( user ),這很可能會引起沖突。 默認情況下,Sequelize將自動創建userId (或user_id具體取決於設置)列,您無需將它包括在define()或關聯中,而您正在使用user作為ID的關系。

使用as屬性定義多個復數形式的1:n關系。

sensor.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Sensor = sequelize.define('Sensor', {
    sensorName: DataTypes.STRING,
  }, {});
  Sensor.associate = function(models) {
    Sensor.hasMany(models.User, { as: 'users' })
  };
  return Sensor;
};

user.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    firstName: DataTypes.STRING,
    lastName: DataTypes.STRING,
    email: DataTypes.STRING
  }, {});
  User.associate = function(models) {
    User.belongsTo(models.Sensor)
  };
  return User;
};

詢問

Sensor.findAll({
  include: [{
    model: User,
    as: 'users,
  }],
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM