嗨,我是 Haskell 的新手,我一直在使用 Scotty 和 Sqlite 开发一个小型 Web 应用程序。
我在 Scotty Actions 中执行 Sqlite 操作时遇到问题。当单独使用这两个库时,我有点理解。
这是我的代码的 MVP
-- imports ...
routes :: ScottyM ()
routes = do
post "data/:id" $ do
id <- param "id"
-- HERE IS WHERE I GET CONFUSED
-- This is what I want to do
db <- open "store.db"
exec db "INSERT INTO Store (id, value) VALUES (" <> id <> ", 'Test Value');" -- I know there is SQL Injection here I will learn about parameterized queries in haskell next
close db
-- END THE PART I AM CONFUSED BY
text $ "created a record with " <> id <> " id."
main :: IO()
scotty 3000 routes
因此,正如您所看到的,我仍然过于迫切地思考。我知道帖子的类型是 ActionM () -> ScottyM () 并且我知道关闭数据库的类型是 IO ()
所以我认为我需要的是一个复合函数,它是 ActionM () -> IO () -> ScottyM () 我只是不知道如何写这个。
这是在正确的轨道上吗?
非常感谢任何和所有建议。