Haskell Yesod和writeFile

时间:2016-05-13 15:40:38

标签: json haskell yesod

我正在尝试学习Yesod并尝试实现一个简单的REST应用程序,每当我收到 GET 请求时,我都会向文件写入内容。现在我有以下处理函数:

getTestR =
  do
    return $ writeFile "test.txt" "Just something"
    return $ object ["result" .= "Ok"]

我期待的是文件test.txt将被创建,我将获得一个{result=Ok}的JSON。但是,我正在获取JSON,但文件未创建。

我认为由于懒惰的评估,writeFile没有被评估,但我不知道如何克服这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

只需使用liftIO

getTestR =
  do
    liftIO $ writeFile "test.txt" "Just something"
    return $ object ["result" .= "Ok"]