【问题标题】:Sequelize Global Hooks and Express - how to attach req.user to every hookSequelize Global Hooks and Express - 如何将 req.user 附加到每个钩子
【发布时间】:2022-08-16 23:54:26
【问题描述】:

我想在我使用 sequelize 进行的每次创建或更新中附加 userId。应该与默认时间戳类似。

我的数据库的每个模型都有一个字段 createdBy 和 updatedBy (引用一个 userId)。

我不想在每个 model.create() 或 model.update() 中附加用户的数据,而是创建一个全局挂钩。

就像是:

sequelize.addHook(\'beforeCreate\', populateCreatedBy);

但我没有找到一种“简单”的方式将来自我的中间件的 req.user 附加到 函数populateCreatedBy()。

我只找到了暗示在每个模型上调用一个钩子并将 req.user 传递给模型参数然后从另一个钩子中检索它的解决方案。但我发现它与在每个 model.create() 上传递该属性相同......

有没有办法将 req.user 传递给 sequelize.addHook(\'beforeCreate\',populateCreatedBy())

提前致谢!

    标签: express sequelize.js hook global


    【解决方案1】:

    我认为没有在每个模型上调用钩子就可以做到这一点。相反,您可以尝试会话存储用于存储用户数据并使用beforeUpdate()beforeCreate() 挂钩更新模型中的用户数据。

    全局挂钩参考 - Sequelize documentation for global hooks

    我对会话存储的建议是快速会话 - express-session

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 1970-01-01
      • 2012-12-20
      • 2020-09-23
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多