2016-08-03 3 views
2

Postgresql을 기반으로하는 Sequelize에서 1 : many 연관을 만들려고 할 때마다이 오류가 발생합니다.Postgresql과 Sequelize의 일대 다 연관 연결

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 Ex에서 여기를 본다. 언론 샘플, 나는이 오류가 발생하는 이유를 확신하지 못합니다.

감사합니다.

답변

0

이 문제는 프로필 모델 정의에 '다음과 같은 : ProbeProfiles'가 있기 때문에 발생합니다. 쿼리를 작동 시키려면 'as'도 포함해야합니다.

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