我如何在 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 按请求缓存。
在执行任何处理程序代码之前,我需要加载一些有关用户的信息(由请求 cookie 确定),然后在我的所有处理程序代码中访问这些信息。
我查看了 yesod-core 代码库,发现我可以覆盖 yesodMiddleware
函数并提供自定义中间件,该中间件将在执行处理程序之前加载数据。
问题是我不知道将这些数据存储在哪里,以便以后可以从 Handler
中检索它。
您可以使用 cached and cachedBy 按请求缓存。