问题标签 [haskell-snap-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 在 Mac 上安装 Haskell 包
我似乎无法在我的 Mac (10.6.8) 上安装一些 Haskell 包。我首先尝试了 Happstack,但失败了,然后我尝试了 Snap。
有时当我运行 ghci 时会出现分段错误。
其他时候它可以工作并且是这样的:
尝试获取 Snap 时:
我已经多次看到这个问题,但没有什么能真正为我解决这个问题。有任何想法吗?
haskell - Snap 框架:使用消化函子编译拼接和处理表格
我试图了解编译的拼接以及如何将它们与消化函子形式一起使用。有人有任何代码示例吗?
haskell-snap-framework - Snap 框架:自定义 snaplet 处理程序不会呈现模板
我刚刚开始编写自定义快照并遇到了障碍。我有以下基本 snaplet,它有一个位于“snaplets/admin-pg/snaplets/heist/templates”中的“角色”模板。有人能告诉我为什么 handleUsers 函数不呈现“角色”模板吗?我收到“没有处理程序接受'/pgadmin/users'”错误。我确定我错过了一些非常基本的东西。谢谢。
我的主要应用程序定义如下。它是 HasHeist 的一个实例
我在主应用程序(“Site.hs”)中的 snaplet 的初始化代码是:
自定义 snaplet 代码...
haskell - Snap,如何在 SnapletISplice 中提升 IO monade
我有一个 IO Bool 函数,可以给我一些状态信息。我想根据此函数返回的值将“OK”或“KO”写入 .tpl 文件的拼接中。
所以我很高兴的是一种在 SnapletISplice 中提升 IO monad 的方法,这样我就可以将 statusSplice :: SnapletISplice App 与 ("splicename", statusSplice) 绑定,并从内部的 IO monad 计算值。
我很确定 SnapletISplice “是”一个 IO monad,应该存在这样的提升功能。但我无法弄清楚它是什么。
注意:我正在使用 snap 0.11。因此删除了一些功能(如liftHandle)。
简而言之,使用代码,我想做的是:
haskell - Yesod的长期投票
我可以在 Yesod 或任何其他具有类似数据库设施的 Haskell Web 框架中进行长轮询吗?
准确地说,我想延迟 HTTP 响应,直到发生有趣的事情。还应该有一个超时,在此之后,客户端将收到一个“什么都没发生”的响应,然后客户端将发出相同的请求。
为了让生活变得更加复杂,我想到的应用程序通过 HTTP/HTML5 和一个非常紧凑的 UDP 协议为 MIDP 客户端提供所有内容。来自任一协议的事件都可以释放任一协议中的响应。
TIA,阿德里安。
haskell - 从解释型抢劫到编译型抢劫
我似乎无法掌握编译的抢劫概念。网络上没有任何例子。我将如何将简单的代码片段从解释更改为编译。
例如:
我将如何将“runChildren”、“mapSplices”、“bindSplice”和“render”与已编译的抢劫进行简单组合?
我知道这个概念是不同的,没有“heistLocal”。但我现在需要回去重新学习如何做一些基本的事情,比如以“for each”循环的方式显示一堆记录。有人可以澄清这一点并展示一个像上面那样但带有编译抢劫的简单示例吗?
目前我什至不知道如何用编译的抢劫做简单的变量替换。例如,这个:
拜托,有人帮助我了解基础知识,或者用一些简单的例子给我指出一个位置。我确实阅读了 snap 网站文档。
haskell-snap-framework - Snap:抢劫模板路径
如何更改默认模板路径?
初始化函数采用相对于“projectroot/snaplets/heist”的路径,即 heistInit“模板”。所以我最终得到了位于“projectroot/snaplets/heist/templates”中的模板
我希望我的模板在“projectroot/resources/templates”中。这可能吗?如何将它传递给初始化程序?
谢谢
ruby-on-rails - 希望将非 Ruby 服务器进程集成到 Rails 应用程序中
我有一个生产 Rails 应用程序,我想尽可能无缝地集成一个非 Rails、非 Ruby 服务器进程。也就是说,我希望某些路由由运行在与 Rails 应用程序相同的服务器上的 Haskell Snap Web 应用程序来处理。这些路由都将返回 JSON 有效负载,因此没有模板复杂性。但是我想避免设置 CORS 的开销,所以我希望这些 JSON 响应看起来好像它们来自与 Rails 生成的网页相同的来源。
在这种情况下,最好的集成策略是什么?我应该设置 Rails 控制器来向 Haskell Web 应用程序发出 Web 请求,然后将响应转发给客户端,还是有更有效的方法来使用 Rack 中间件或 Nginx 配置来做到这一点?
haskell - Snap 框架中的跨域请求
有没有人有使用 Snap 框架使用跨域请求的经验。我是使用该框架的新手,并且为 Yesod 找到了一些东西(在 Yesod中允许跨域请求),但我不确定如何为 Snap 做这件事。任何帮助,将不胜感激。
haskell - 在 snap 中将列表作为多个参数 URL 传递
是否可以将列表参数从浏览器传递到 Snap 中的处理函数?如何从列表构造多参数 URL 并将其发送到处理函数?
例如,我需要删除一些表行或任何其他对象。我不能用通常的 REST 路由来做到这一点:
仅仅因为可能太多,并且一一删除 100 行可能会有点乏味。
我通过复选框输入选择了注定的对象,比如需要删除 [3,4,6,8] 行。那么如何将该列表传递给 URL 中的处理程序,以及该操作的路由是什么样的?
更新
好吧,我终于用 jquery 和 ajax 调用做到了。Snap 的“getParams”函数可以处理多个参数 URL,但我仍然无法弄清楚如何在没有 jquery 和 ajax 的情况下实际构造 URL。
我使用 javascript 来收集要删除的项目并构建项目数组。然后我使用 ajax 构造多个参数 URL 并将其发送到处理程序。使用此方法和 Snap 需要注意的几点:
-- Snaps 的“getParams”功能只支持旧式多参数 URL:
而不是新的:
这使得传递复杂的参数变得不可能。
-- 路线应该是:
而不是:
我没有回答我的问题,因为我不相信这是通过 snap 传递多个参数 URL 的唯一方法。
尽管“getParams”可以处理它,但我的问题仍然存在:如何构造 URL 并将其发送给处理程序?
例如,Rails 在视图逻辑中使用“link_to”函数来构造 URL。Snap 在模板中不使用任何逻辑,那么它是如何工作的呢?它不可能是在 snap 中传递多个参数 URL 的唯一方法是在 javascript 的帮助下......?
请有人帮我确认一下?