gpt4 book ai didi

javascript - 未处理的拒绝 SequelizeEagerLoadingError :Sequelize

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:29 25 4
gpt4 key购买 nike

这是我的模型: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;
};

用户.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)
})

我收到以下错误:

Unhandled rejection SequelizeEagerLoadingError: User is not associated to Sensor!

最佳答案

您正在创建一个与对象关系同名的列 (user),这可能会导致冲突。默认情况下,Sequelize 将自动创建 userId(或 user_id,具体取决于设置)列,您无需将其包含在 define() 或关联中,而您使用 user 作为 ID 关系。

使用 as 属性定义复数的 1:n 关系。

传感器.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;
};

用户.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,
}],
})

关于javascript - 未处理的拒绝 SequelizeEagerLoadingError :Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com