mongoDB
MonadBaseControl IO
. के उदाहरण वाले किसी भी सन्यासी में काम करने के लिए पर्याप्त सामान्य है और MonadIO
।
उदाहरण के लिए, आप IO
. चुन सकते हैं सन्यासी इस मामले में आपको liftIO . runQuery
स्कॉटी की कार्रवाई के अंदर:
import Web.Scotty
import Database.MongoDB
import qualified Data.Text.Lazy as T
import Control.Monad.IO.Class
runQuery :: Pipe -> Query -> IO [Document]
runQuery pipe query = access pipe master "nutrition" (find query >>= rest)
main = do
pipe <- connect $ host "127.0.0.1"
scotty 3000 $ do
get "/" $ do
res <- liftIO $ runQuery pipe (select [] "stock_foods")
text $ T.pack $ show res
@Sebastian Philipp
के बाद जोड़ा गया
MonadBaseControl
Scotty.ActionT
. के लिए उदाहरण , कुछ भी उठाने की जरूरत नहीं है। आप mongoDB फॉर्म स्कॉटी के साथ पारदर्शी रूप से काम कर सकते हैं। बस टाइप सिग्नेचर बदलें और ड्रॉप करें liftIO
रों:
runQuery :: Pipe -> Query -> ActionM [Document]
...
get "/" $ do
res <- runQuery pipe (select [] "stock_foods")
text $ T.pack $ show res