У меня есть следующие таблицы:
Product:
name: string, description: string, image: string
Brand:
name: string
Category:
name: string
У одного продукта может быть только один бренд. У одного продукта может быть несколько категорий.
Мои ассоциации:
models/product.js:
Product.associate = function(models) {
Product.hasOne(models.Brand, {
foreignKey: "productId",
as: "brand"
}),
Product.hasMany(models.Category, {
foreignKey: "productId",
as: "categories"
});
}
models/category.js:
Category.belongsTo(models.Product, {
foreignKey: "productId",
onDelete: "CASCADE"
})
models/brand.js:
Brand.belongsTo(models.Product, {
foreignKey: "productId",
onDelete: "CASCADE"
})
1- пока все нормально? Отступ в models/product.js кажется мне странным.
2- в моем контроллере продуктов, как мне получить как бренд, так и категории моих продуктов? В настоящее время у меня есть:
controllers/products.js:
list(req, res) {
return Product.findAll({
include: [
{
model: Category,
as: "categories"
}
]
})
.then(products => res.status(200).send(products))
.catch(error => res.status(400).send(error));
}
Категории включены, как мне также включить бренд?
Я ожидаю, что на выходе будет массив продуктов, каждый из которых содержит бренд и одну или несколько категорий.