คำถามติดแท็ก yesod

4
การเปรียบเทียบกรอบเว็บ Snap และ Yesod ของ Haskell
กรอบงานเว็บ Haskell ทั้งสองในข่าวล่าสุดคือYesod (ที่ 0.8) และSnap (ที่ 0.4) เห็นได้ชัดว่า Yesod ปัจจุบันรองรับคุณสมบัติมากมายกว่า Snap อย่างไรก็ตามฉันไม่สามารถใช้ไวยากรณ์ Yesod ที่ใช้กับ HTML, CSS และ Javascript ได้ ดังนั้นฉันต้องการที่จะเข้าใจสิ่งที่ฉันจะหายไปถ้าฉันไปกับ Snap แทน ตัวอย่างเช่นดูเหมือนว่าจะไม่มีการสนับสนุนฐานข้อมูล วิธีการเกี่ยวกับการประชุม? คุณสมบัติอื่น ๆ ?

1
ข้อยกเว้นใน Yesod
ฉันได้สร้างภูตที่ใช้รูปแบบดั้งเดิมของipc(เทลเน็ตและส่งสตริงที่มีคำบางคำตามลำดับ) ฉันหักออกและตอนนี้กำลังใช้JSONเพื่อส่งข้อความไปยังYesodเซิร์ฟเวอร์ อย่างไรก็ตามมีบางสิ่งที่ฉันชอบมากเกี่ยวกับการออกแบบของฉันและฉันไม่แน่ใจว่าตอนนี้ตัวเลือกของฉันคืออะไร นี่คือสิ่งที่ฉันกำลังทำ: 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 …

1
ฉันจะให้ esqueleto สร้างสตริง SQL ให้ฉันได้อย่างไร
ฉันจะให้ esqueleto สร้างสตริง SQL จากfromคำสั่งได้อย่างไร เอกสารtoRawSqlระบุว่า "คุณสามารถเปิดการบันทึกการสืบค้นแบบถาวร" ฉันลองใช้รูปแบบที่เป็นไปได้ทั้งหมดMonadLoggerที่ฉันเข้าใจ แต่ไม่เคยพิมพ์ SQL เลย เอกสารฉบับเดียวกันยังระบุว่า "การใช้ฟังก์ชันนี้ด้วยตนเอง ... เป็นไปได้ แต่น่าเบื่อ" อย่างไรก็ตามยังไม่มีการก่อสร้างงานประเภทหรือฟังก์ชั่นใด ๆ ค่าชนิดที่กลับมาQueryTypeจะถูกส่งออก ฉันจัดการเพื่อหลีกเลี่ยงสิ่งนี้โดยสังเกตว่าQueryTypeเป็นnewtypeและใช้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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.