2016-12-23 6 views
0

私は別のオブジェクトを含む、単純なJSONオブジェクトを取得中に問題を抱えています。私のケースでは、モデル "Enterprise"には "Address"が1つありますが、Addressオブジェクトは他のモデルで使用されているため、外部キーはEnterpriseオブジェクト内に "id_address"として格納されています。Sequelize belongsTo関連:外部キーID値の代わりに完全なオブジェクトの

module.exports = function(sequelize, DataTypes) { 
    return sequelize.define('enterprise', { 
    id: { 
     type: DataTypes.INTEGER, 
     allowNull: false, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    id_address: { 
     type: DataTypes.INTEGER, 
     allowNull: true, 
     references: { 
     model: 'address', 
     key: 'id' 
     } 
    }, 
    name: { 
     type: DataTypes.STRING, 
     allowNull: true 
    } 
    }, { 
    tableName: 'enterprise', 
    timestamps: false 
    }); 
}; 

私はこの関連付けを作成しました:

db.enterprise.belongsTo(db.address,{foreignKey: 'id_address', constraints: false}); 

私はそのように照会しています:

models.enterprise.findAll({ 
    include: [ 
     models.address 
    ] 
}).then(function(result) { 
    if(result === null){ 
     res.status(204); 
    } else { 
     res.status(200); 
     res.json(result); 
    } 
}); 

問題が取り出されるJSONは内部のみid_address値を持ち、かつではないということです完全なAddressオブジェクト

{ 
    id:1, 
    id_address:1, 
    name : 'MyEnterprise' 
} 

代わりの

{ 
    id:1, 
    address:{ 
    id:1, 
    street:'Example' 
    } 
    name:'MyEnterprise' 
} 

この上の任意の入力?

ありがとうございました。

よろしくお願いいたします。

+0

結果として得られるSQL要求にはJOINはありません。 – Deunz

+1

Btw、204の代わりに404を返すべきですか? – felixfbecker

+1

これを試してください: 'Enterprise.findAll({include:[Enterprise.associations.Address]})' – felixfbecker

答えて

0

[OK]を私はこの問題を発見した:私は私が行うとき、それは完全に働いている

...いいの要求に影響を与えていませんでした。とにかく助けてくれてありがとう。

((()))

関連する問題