Sequelize:当对象从 table 中拉出时,有没有办法修改对象?

Sequelize: Is there any way to amend an object when it's pulled out of a table?

我有一个用户 table 和一组电子邮件(从不同的数据库中获取),表示电子邮件是否是付费的。

我希望我的 ORM 每次将用户从数据库中拉出时附加 user.premium。它所要做的就是user.premium = premiumEmails.includes(user.email)

我能够使用 afterFind 挂钩来完成这个确切的操作,当我使用 User.findOneUser.find 时它可以工作,但当我通过关系获得用户时却不行.

当我执行 Post.find 时,我希望 Sequelize 查看 post.user 并将相同的 premium 字段附加到属于 post 的用户。

有什么办法可以做到吗?

这是一个带有 Sequelize 的 known issue,并且由于最近 activity 缺少有关链接 GitHub 的问题,我认为这不会很快得到解决。

最好的办法是在 returns premiumEmails.includes(this.email) 的用户模型上定义一个 Virtual field(注意使用 this 而不是 user) .