【问题标题】:Trigger afterFind hooks on included models in sequelize在 sequelize 包含的模型上触发 afterFind 钩子
【发布时间】:2021-01-14 16:03:13
【问题描述】:

我有两个模型。 Purchase 和 PurchaseDetail 与它们相关联 Purchase.hasMany(models.PurchaseDetail) PurchaseDetail.belongsTo(models.Purchase)

我在 PurchaseDetail 上有 afterFind 钩子,它检查其他模型并向实例添加有关 PurchaseDetail 中使用的产品状态的数据,当我直接调用 PurchaseDetail.find 时它工作正常

但是,当我执行 Purchase.find 并包含 PurchaseDetail 时,不会触发此挂钩。

我知道我可以单独调用这两个模型,然后自己组合并发送数据,但如果我团队中的其他开发人员决定包含 InvoiceDetail,他们将不会收到此信息。

如何在包含 PurchaseDetail 时触发此功能?

【问题讨论】:

标签: sequelize.js


【解决方案1】:

我们在我工作的公司中所做的是将子级中 afterFind 钩子的行为提取到我们称为 expand 的原型函数中,然后在 afterFind 钩子中调用此 expand 函数.

然后,我们在父实体内部创建了一个 afterFind 钩子,并在其中创建了一个名为 child.expand() 的钩子。

【讨论】:

  • 请分享你提到的代码。
【解决方案2】:

hooks 在其他模型中不被调用 (findAll({ model, include: [{ model, include }]) https://github.com/sequelize/sequelize/issues/4627

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多