如何在yesod中使用APPROOT环境变量设置approot

时间:2014-01-02 23:18:38

标签: haskell yesod

我想将approot值设置为yesod项目中Approot env变量的值。我该怎么做呢?这是我的主要功能:

appRootStatic <- (getEnv "APPROOT")    
warpEnv $ Piggies pool manager appRootStatic

问题是在approot函数中我无法访问Piggies构造函数,因为Approot不是MonadHandler的实例?

  

数据Piggies = Piggies       {       connPool :: ConnectionPool,       httpManager :: Manager,       staticURL :: String       }

approot = do
        master <- getYesod
        ApprootMaster master (staticURL master)

在我尝试使用ApprootMaster数据构造函数之前,我曾尝试过ApprootStatic。

编译器抱怨:“没有Monad Approot的实例来自do语句。所以我的问题是如何将APPROOT变量的值粘贴到approot?

谢谢,

1 个答案:

答案 0 :(得分:2)

您需要做的是:

  1. 在您的基础数据类型中添加一个字段,以包含APPROOT环境变量。
  2. 根据approot
  3. 定义ApprootMaster
  4. main函数中,阅读APPROOT环境变量并在基础数据类型中设置字段。
  5. 脚手架会自动为您完成所有这些操作。