在Sequelize和Node.js中围绕协会缠绕我的大脑时遇到一些麻烦。这是一个我正在组合的简单API(没有前端)。
我正在尝试在客户和地址模型之间进行简单的一对多关联。
const Customer = sequelize.define('Customer', { /* stuff */ });
const Address = sequelize.define('Address', { /* stuff */ });
Customer.hasMany(Address);
Address.belongsTo(Customer);
我的目的是返回一个带有相关地址列表的客户对象,如下所示:
{
customer: {
name: "Customer Name",
// more customer fields...
addresses: [
{ /* address fields */ },
{ /* address fields */ },
]
}
}
在我的控制器中,到目前为止我正在做以下事情:
Customer
.findById(id)
.then(customer => {
customer.getAddresses()
.then(addresses => {
response.json({
customer: customer,
addresses: addresses,
});
});
});
返回:
{
customer: {
name: "Customer Name",
// more customer fields...
},
addresses: [
{ /* address fields */ },
{ /* address fields */ },
]
}
欢迎任何建议。
答案 0 :(得分:1)
您可以在获取中include
关联的模型:
Customer
.findById(id, {
include: [{
model: Address
}]
})
.then(customer => {
response.json({customer});
});
有关详细信息,请参阅docs。