我试图在Haskell中编写一个使用Scotty的简单REST API。经过大量工作后,my database layer可以工作,并且可以从我的sqlite数据库中检索一行。 the API end也可以工作,我可以转到localhost / api / etc,它会返回JSON。但我似乎无法连接所有部件。我真的不知道Haskell数据类型如何相互转换。当我尝试put the two together, as in this file时,我似乎无法正确对齐类型。我得到的错误是:
Main.hs:41:15: error:
• Couldn't match type ‘IO’
with ‘Web.Scotty.Internal.Types.ActionT
Data.Text.Internal.Lazy.Text IO’
Expected type: Web.Scotty.Internal.Types.ActionT
Data.Text.Internal.Lazy.Text IO Connection
Actual type: IO Connection
• In a stmt of a 'do' block: conn <- connectSqlite3 db
In the second argument of ‘($)’, namely
‘do { conn <- connectSqlite3 db;
meta <- getByID conn "9.0";
json meta }’
如何将IO
转换为Web.Scotty.Internal.Types.ActionT Data.Text.Internal.Lazy IO Connection
?还有为什么我必须这样做?