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'
}
この上の任意の入力?
ありがとうございました。
よろしくお願いいたします。
結果として得られるSQL要求にはJOINはありません。 – Deunz
Btw、204の代わりに404を返すべきですか? – felixfbecker
これを試してください: 'Enterprise.findAll({include:[Enterprise.associations.Address]})' – felixfbecker