Javascript Sequelize与Postgresql中的一对多关联
每当我试图在Postgresql支持的Sequelize中创建1:many关联时,就会收到此错误 未处理的拒绝错误:ProbeProfile未与配置文件关联 纵断面模型定义:Javascript Sequelize与Postgresql中的一对多关联,javascript,sequelize.js,Javascript,Sequelize.js,每当我试图在Postgresql支持的Sequelize中创建1:many关联时,就会收到此错误 未处理的拒绝错误:ProbeProfile未与配置文件关联 纵断面模型定义: 'use strict'; module.exports = function(sequelize, DataTypes) { var Profile = sequelize.define('Profile', { id: { type: DataTypes.INTEGER, primaryKey: true
'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;
};
'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;
};
ProbeProfile模型定义:
'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;
};
'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示例,我不确定为什么会出现此错误
谢谢 该问题是由于在纵断面模型定义中有“as:probeprofile”。为了使查询正常工作,它还必须包含“as”
models.Profile.findAll({ where: { id: id }, include: [{ model: models.ProbeProfile, as: 'ProbeProfiles' }] }).then(function(rows) {
cb(rows);
});