У меня есть следующие таблицы:
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 - в моем контроллере Products, как я могу получить информацию о бренде и категориях моих продуктов?В настоящее время у меня есть:
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));
}
Включены категории, как я могу также включить бренд?
Я ожидаю, что результатом будет массив продуктов, которые содержат бренд и одну или несколькокатегории.