我如何在 Yesod 中间件中存储请求本地信息并从处理程序中检索它?

How can I store request-local information in Yesod middleware and retrieve it from a Handler?

在执行任何处理程序代码之前,我需要加载一些有关用户的信息(由请求 cookie 确定),然后在我的所有处理程序代码中访问这些信息。

我查看了 yesod-core 代码库,发现我可以覆盖 yesodMiddleware 函数并提供自定义中间件,该中间件将在执行处理程序之前加载数据。

问题是我不知道将这些数据存储在哪里,以便以后可以从 Handler 中检索它。

您可以使用 cached and cachedBy 按请求缓存。