在 Yesod 中读取 运行 模式

Reading the run mode in Yesod

如何确定Yesod应用程序中的运行模式(DevelopmentTestingStagingProduction)?

我有一个服务应该 return 一个值只在 DevelopmentTesting 模式。该值是一个秘密令牌,将作为新注册用户验证的一部分发送。

DevelopmentTesting模式下,我需要验证发送的令牌是否与生成的令牌相同。

在以前的 Yesod 版本(我相信是 1.2)中,我使用了以下代码,但它不再编译:

case appEnv $ settings $ getYesod of
    Development -> -- value to return in Development
    Testing -> -- value to return in Testing
    _ -> -- value to return in Staging and Production

在最新版本的脚手架中,我们不再有环境的概念。命令行参数可用于切换我们从中读取的配置文件,仅此而已。如果您想访问该信息,可以使用 getArgs.