【发布时间】:2018-12-01 04:28:28
【问题描述】:
我正在尝试从具有模型关联的查询中排除联结模型,这就是它们的关联方式:
Warehouse.associate = function(models) {
Warehouse.Products = Warehouse.belongsToMany(models.Product, {
as: {
singular: 'product',
plural: 'products',
},
through: models.WarehouseProducts,
foreignKey: "warehouse_id",
otherKey: "product_id",
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
});
}
Product.associate = function(models) {
Product.Warehouses = Product.belongsToMany(models.Warehouse, {
as: {
singular: "warehouse",
plural: "warehouses"
},
through: models.WarehouseProducts,
foreignKey: "product_id",
otherKey: "warehouse_id",
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
});
}
这是我用来检索仓库产品的代码:
export const prefetchWarehouse = [
validator.params.warehouse,
async function(req, res, next) {
try {
if (validator.errors(req)) {
throw validator.stack;
} else {
req.warehouse = await Warehouse.findById(req.params.warehouse);
next();
}
} catch (err) {
next(err);
}
}
];
export const getProduct = [
validator.params.product,
async function(req, res, next) {
const result = await req.warehouse.getProducts({
where: {
id: {
[Op.eq]: req.params.product
}
},
plain: true
});
console.log('===>', result);
}
]
这是输出:
【问题讨论】:
-
嗨。请use text, not images/links, for text (including code, tables & ERDs)。使用链接/图像仅是为了方便补充文本和/或无法在文本中给出的内容。永远不要给出没有图例/键的图表。如果您有代表,请使用编辑功能内联,而不是链接 - 使您的帖子独立。
标签: database orm relational-database sequelize.js