如何将上下文添加到 Sequelize 挂钩?
How to add context to a Sequelize hook?
我想用一个钩子对一行进行访问控制,让用户只能访问自己拥有的行。该挂钩将添加一个额外的 where 子句以确保用户是该行的所有者(例如:WHERE ownerId=user.id)。
问题是,如何将用户 ID 传递给 Sequelize,以便在钩子触发时钩子拥有它?我已经查看了文档,但我不清楚是否可行。
谢谢
要添加上下文,您可以在选项对象中包含任何您喜欢的内容。例如,假设您正在使用 Model.findAll()
。您可以像这样设置您的选项:
options = {
attributes: ['id', 'column1', 'column2'],
where: { someColumn: 'aValue' }
}
options.context = 'foo';
然后在挂钩中,您将能够访问 options.context 并随心所欲地使用它。当然,您可能不应该使用 Sequelize 使用的任何 "reserved" 词来过滤查询。
我想用一个钩子对一行进行访问控制,让用户只能访问自己拥有的行。该挂钩将添加一个额外的 where 子句以确保用户是该行的所有者(例如:WHERE ownerId=user.id)。
问题是,如何将用户 ID 传递给 Sequelize,以便在钩子触发时钩子拥有它?我已经查看了文档,但我不清楚是否可行。
谢谢
要添加上下文,您可以在选项对象中包含任何您喜欢的内容。例如,假设您正在使用 Model.findAll()
。您可以像这样设置您的选项:
options = {
attributes: ['id', 'column1', 'column2'],
where: { someColumn: 'aValue' }
}
options.context = 'foo';
然后在挂钩中,您将能够访问 options.context 并随心所欲地使用它。当然,您可能不应该使用 Sequelize 使用的任何 "reserved" 词来过滤查询。