在Sequelize中使用嵌套关联时遇到问题

时间:2018-03-14 20:24:04

标签: node.js associations sequelize.js

在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 */ },
    ]
}

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

您可以在获取中include关联的模型:

Customer
  .findById(id, {
     include: [{
       model: Address
     }]
  })
  .then(customer => {
    response.json({customer});
  });

有关详细信息,请参阅docs