如何将上下文添加到 Sequelize 挂钩?

How to add context to a Sequelize hook?

我想用一个钩子对一行进行访问控制,让用户只能访问自己拥有的行。该挂钩将添加一个额外的 where 子句以确保用户是该行的所有者(例如:WHERE ownerId=user.id)。

问题是,如何将用户 ID 传递给 Sequelize,以便在钩子触发时钩子拥有它?我已经查看了文档,但我不清楚是否可行。

谢谢

参考:http://sequelize.readthedocs.org/en/latest/docs/hooks/

要添加上下文,您可以在选项对象中包含任何您喜欢的内容。例如,假设您正在使用 Model.findAll()。您可以像这样设置您的选项:

options = {
  attributes: ['id', 'column1', 'column2'],
  where: { someColumn: 'aValue' }
}

options.context = 'foo';

然后在挂钩中,您将能够访问 options.context 并随心所欲地使用它。当然,您可能不应该使用 Sequelize 使用的任何 "reserved" 词来过滤查询。