gpt4 book ai didi

javascript - Sequelize 中的一对多关联与 Postgresql

转载 作者:行者123 更新时间:2023-12-03 22:17:38 26 4
gpt4 key购买 nike

每当我尝试在 Postgresql 支持的 Sequelize 中创建 1:many 关联时,我都会收到此错误。

Unhandled rejection Error: ProbeProfile is not associated to Profile!



轮廓模型定义:
'use strict';

module.exports = function(sequelize, DataTypes) {
var Profile = sequelize.define('Profile', {
id: { type: DataTypes.INTEGER, primaryKey: true},
name: DataTypes.STRING,
description: DataTypes.TEXT,
isDeleted: DataTypes.BOOLEAN,
createdAt: DataTypes.DATE,
updatedAt: DataTypes.DATE
}, {
tableName: 'profiles',
classMethods: {
associate: function(models) {
Profile.hasMany(models.ProbeProfile, { as: 'ProbeProfiles' });
}
}
});

return Profile;
};

ProbeProfile 模型定义:
'use strict';

module.exports = function(sequelize, DataTypes) {
var ProbeProfile = sequelize.define('ProbeProfile', {
id: { type: DataTypes.INTEGER, primaryKey: true},
label: DataTypes.STRING,
upperThreshold: DataTypes.INTEGER,
lowerThreshold: DataTypes.INTEGER,
probeChannel: DataTypes.INTEGER,
profileId : DataTypes.INTEGER,
readingDateTime: DataTypes.DATE
}, {
classMethods: {
associate: function(models) {
ProbeProfile.belongsTo(models.Profile, { foreignKey: 'profileId' });
}
}
});

return ProbeProfile;
};

最后,我正在使用的查询:
models.Profile.findAll({ where: { id: id },  include: [models.ProbeProfile] }).then(function(rows) {
cb(rows);
});

根据我在这里看到的 SO 和 Sequelize Express 示例,我不确定为什么会收到此错误。

谢谢!

最佳答案

问题是由于在 Profile 模型定义中有“as:ProbeProfiles”。为了使查询工作,它还包含“as”。

models.Profile.findAll({ where: { id: id },  include: [{ model: models.ProbeProfile, as: 'ProbeProfiles' }] }).then(function(rows) {
cb(rows);
});

关于javascript - Sequelize 中的一对多关联与 Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754500/

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