Yesod书籍示例聊天和脚手架

时间:2015-04-21 21:22:02

标签: haskell yesod

我试图通过脚手架网站上的Yesod book制作聊天示例。

我认为我已经纠正了几乎所有我必须纠正的内容,但所有这一切对我来说都是全新的(这是我的第一个"真正的" Haskell项目)和我&#39 ;我对所有修改都不太自信;此外,我真的陷入了第7点。如果有必要,你能否评论以下所有要点,并帮助我做到7.(在大胆一些问题/评论中)?

  1. 将Chat.hs和Chat / Data.hs复制/粘贴到我网站的根目录
  2. import Chat as Importimport Chat.Data as Import添加到Import.NoFoundation,
  3. 在Data.hs中添加IO,Bool,return,Maybe(Nothing),($)的导入,因为扩展名NoImplicitPrelude在看起来非常笨拙......我们是否必须导入所有标准运算符每个新文件?
  4. 在Fundation.hs中
  5. ,在getChat记录中添加App(在appHttpManagerappLogger之后)
  6. 在Fundation.hs中
  7. ,为App添加YesodChat实例:我必须修改getUserName案例中的Just uid(在聊天的原始示例中,它只是{{1} }):

    Just uid -> return uid

    这似乎很长并且嵌套......我们可以做得更好吗?

  8. Just uid -> do muser <- runDB $ get uid case muser of Nothing -> error "uid not in the DB" Just user -> return $ userIdent user 中,在Fundation.hs定义中的chatWidget ChatR行之后添加pc <- widgetToPageContent $ do
  9. 现在,我收到以下警告:

    defaultLayout

    我想我必须在Application.hs:60:36: Warning: Fields of ‘App’ not initialised: getChat In the expression: App {..} 定义中的getChat <- newChan >>=ChatappLogger <- newStdoutLoggerSet defaultBufSize >>= makeYesodLogger后面写appStatic <- ...之类的内容,但类型不匹配。 我完全迷失在这里,我真的不明白这个功能makeFundation是如何运作的。

0 个答案:

没有答案