2016-08-03 18 views
2

Ich erhalte diesen Fehler, wenn ich versuche, eine 1: viele Verein in Sequelize von Postgresql unterstützt.Eins zu viele Verein in Sequelize mit Postgresql

Unhandled rejection Error: ProbeProfile is not associated to Profile!

Profil Modelldefinition:

'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 Modelldefinition:

'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; 
}; 

Und schließlich die Abfrage Ich verwende:

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

Nach dem, was ich bin Sehen Sie hier auf SO und die Sequelize Ex Presse Beispiel, ich bin mir nicht sicher, warum ich diesen Fehler bekomme.

Danke!

Antwort

0

Das Problem liegt daran, dass die 'as: ProbeProfiles' in der Profilmodelldefinition enthalten sind. Damit die Abfrage funktioniert, enthält sie auch das 'as'.

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