【问题标题】:How to add context to a Sequelize hook?如何将上下文添加到 Sequelize 挂钩?
【发布时间】:2015-02-13 04:27:53
【问题描述】:

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

问题是,我如何将用户 ID 传递给 Sequelize,以便在钩子触发时钩子拥有它?我已经查看了文档,如果这可能的话,对我来说并不明显。

谢谢

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

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

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

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

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

    【讨论】:

    • context 在 Sequelize 文档中似乎不受支持:docs.sequelizejs.com/class/lib/… 它也不在 Sequelize 打字稿定义中,这意味着使用此选项将不允许您的代码编译:@ 987654322@关于如何完成这项工作还有其他建议吗?
    猜你喜欢
    • 2017-04-04
    • 2017-11-09
    • 2020-08-10
    • 2019-09-21
    • 2012-03-15
    • 2013-07-22
    • 2019-10-09
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多