Tag: yesod

Yesod:从Int中通过ID获取数据库实体

我是Haskell和Yesod的新手,正在尝试构build一个简单的Web应用程序,可以从外部API回答查询。 我已经构build了一个parsing器(使用Parsec),这使得我想要加载一个实体的ID作为一个常规的Int值。 然而,我终身无法弄清楚如何把这个Int变成一个可以接受的东西(即一个Key (?))。 文档中的所有示例只能获得以前插入的id,或从url派发。 任何帮助将不胜感激,因为我似乎被卡住… 🙂

Yesod多重身份validation?

我需要在我的应用程序需要多个身份validationtypes; 特别是:应用程序的某些部分需要对Dropbox进行身份validation,并且某些部分需要基于电子邮件的身份validation,例如browserID。 我该如何处理? 我可以将身份validation附加到子网站吗? 由于YesodAuth类在所有示例中都将主基础数据types作为其参数,因此我怎么能做到这一点并不明显。 如果不是,还有其他的方法吗?

我怎么能esqueleto为我生成一个SQLstring?

我怎样才能得到esqueleto从一个语句生成一个SQLstring? toRawSql的文档说“你可能只是打开持久性的查询日志logging”。 我尝试了所有可能的MonadLoggerforms,但是从未打印过任何SQL。 同样的文件也说“手动使用这个function…是可能的,但繁琐的”。 但是,没有该types的构造函数,也没有任何返回typesQueryType被导出。 我设法通过注意到QueryType是一种新types并使用unsafeCoerce ! 我也被迫提供一个Connection (我通过SQLite),即使不应该连接到数据库来生成SQL。 这是我得到的。 一定会有更好的办法。 withSqliteConn ":memory:" $ \conn -> return $ toRawSql SELECT (unsafeCoerce ((const mempty) :: a -> Text.Lazy.Builder.Builder)) (conn, initialIdentState) myFromStatement) http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html

Yesod的例外

我做了一个守护进程,使用一个非常原始的ipcforms(远程login并发送一个string,按照一定的顺序有一定的字)。 我退出了它,现在使用JSON将消息传递给Yesod服务器。 不过,有些事情我真的喜欢我的devise,我不确定我现在的select。 以下是我正在做的事情: buildManager :: Phase -> IO () buildManager phase = do let buildSeq = findSeq phase jid = JobID $ pack "8" config = MkConfig $ Just jid flip C.catch exceptionHandler $ runReaderT (sequence_ $ buildSeq <*> stages) config — ^^ I would really like to keep the above line of code, […]

比较Haskell的Snap和Yesod web框架

最近新闻中的两个Haskell Web框架是Yesod (0.8)和Snap (0.4)。 很显然,Yesod目前比Snap支持更多的function。 但是,我受不了Yesod使用HTML,CSS和Javascript的语法。 所以,我想了解一下,如果我使用Snap而不使用Snap,我会错过什么。 例如,看起来不像数据库支持那里。 会话如何? 其他特性?

将Yesod部署到Heroku,不能静态构build

我对Yesod非常陌生,而且我很难静态构buildYesod,所以我可以部署到Heroku。 我已经改变了默认的.cabal文件来反映静态编译 if flag(production) cpp-options: -DPRODUCTION ghc-options: -Wall -threaded -O2 -static -optl-static else ghc-options: -Wall -threaded -O0 它不再build立。 我得到了一大堆警告,然后是一堆未定义的引用,如下所示: Linking dist/build/personal-website/personal-website … /usr/lib/ghc-7.0.3/libHSrts_thr.a(Linker.thr_o): In function `internal_dlopen': Linker.c:(.text+0x407): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/ghc-7.0.3/unix-2.4.2.0/libHSunix-2.4.2.0.a(HsUnix.o): In function `__hsunix_getpwent': HsUnix.c:(.text+0xa1): warning: Using 'getpwent' […]