问题标签 [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.

0 投票
1 回答
738 浏览

haskell-snap-framework - 快照配置文件

如何在 Snap 中正确使用配置文件?

目前,我对数据库主机和数据库名称进行了硬编码。如果我想把它放在 projectroot/config 目录中的一个文件中,我如何使它在处理程序或应用程序初始化函数中可用?

在 snaplets 教程中简要提到了可以使用配置器库,但没有说明如何实际使用它。

谢谢。

0 投票
1 回答
61 浏览

haskell-snap-framework - Snap 中的方法“PUT”

如果我在 Web 表单中指定 method="PUT" 并在路由中通过此方法过滤

表单永远不会到达处理程序。处理程序甚至从未触发。一旦我在路由和表单中将方法更改为 POST,那么一切都会按预期工作。

知道为什么吗?

谢谢。

0 投票
1 回答
440 浏览

haskell-snap-framework - Snap 二进制文件上传

我需要了解使用 Snap 上传文件的过程。

鉴于这种形式:

我是使用 getPostParams 等相同的函数来处理二进制文件还是使用 Snap.Util.FileUploads 中的函数?

我需要在数据库中上传和保存像 PDF 这样的二进制文件。数据库驱动程序将接受 ByteString 来存储二进制文件。

我经历了 Snap.Util.FileUploads 但它看起来不像是我需要的。所以我不确定如何在处理程序中处理这个?

谢谢。

编辑

在 IRC 的帮助下,我设法提出了以下结构。我认为它应该接近正确?好吧,它编译并将文件转储到 mongodb。我也可以读回来。虽然我不太了解枚举器和 Iteratee 的东西......

0 投票
1 回答
224 浏览

haskell - 内存非常有限的 Haskell Snap 编译

我正在尝试使用非常有限的内存(220mb)在我的 ubuntu vps 上为 Haskell 编译 Snap 框架,并且在使用“cabal install snap”时我不断收到有关内存不足的错误。我试图增加交换大小,但因为它是一个 OpenVZ 盒子,所以基本上不存在交换。

我的问题是,有什么方法可以使用外部机器编译所有文件,然后让它们传输到 VPS 上的正确位置,就好像我在本地编译它一样?

或者,如果其他人对我如何能够使其工作有任何其他建议,请告诉我。

0 投票
1 回答
193 浏览

haskell-snap-framework - 如何让 addRoutes 在 snaplet 中工作(更改 api,抢劫 0.12)?

如何制作nicEditor snaplet?(几个问题) 我按照提示addRoutes输入了 snaplet 初始化程序,它起作用了。将 snap 和 heist (0.12) 模块更新为更新后,我在addRoutes. 如果addRoutesnicsnapInit(在 snaplet 示例中)移除并放入routesApplication.hs 中的 -function 中,则该路由与 App 中的其他路由同时初始化并找到路由。

但是,如果addRoutes是 in nicsnapInit,服务器只会说

这看起来像没有添加路线。

目前如何addRoutes在 snaplet 初始化程序中使用(heist 0.12)?


几乎马上就知道了Snap 框架:自定义 snaplet 处理程序不会渲染模板几乎有类似的问题。以前addTemplates用过。addRoutes经过类似的更改后,这似乎可行,也就是说,使用线

其中 h 是参数

以及对应用程序初始化程序的相应更改。

这会将 url 更改为“niced/netext”,即首先是 snaplet 名称,然后是 snaplet 中定义的路由。

是否可以仅添加“/ nettext”部分?

0 投票
2 回答
315 浏览

haskell - Haskell Snap 框架 - 类型不匹配 ByteString / 也许 ByteString

我对 Haskell 和 Snap 还很陌生,我正在为一个使用 snap 的小型网络论坛开发自己的项目。我遇到的问题是理解冲突以及如何解决以下代码。

给我一个类型不匹配错误,如下所示:

任何消除混淆的建议将不胜感激,我一直在寻找一些方法来解开可能并检索字节串,但没有成功。

非常感谢!

0 投票
1 回答
218 浏览

haskell - Haskell Snap 框架 - 带有 Heist 的动态超链接

我正在尝试使用 Heist 模板系统创建动态链接。问题是链接显示为文本,而不是被解释为 html。有没有一种特定的方法可以用 Heist 创建像这样的动态列表?

构造链接的函数:

该标签在网页上显示为“http://localhost:8000/thread_home?cateid=1'>1”文本。来源显示如下:

我认为我需要让它打印实际的 < 和 > 但我不确定如何实现这一点。由于我目前正在运行 runChildrenWithText 来填充这个 Heist 模板,更改为只是 runChildrenWith 需要拼接而不是文本,所以我希望有一些方法可以在没有 '<' 和 '>' 的情况下 runChildrenWithText 被转换为 '<'和'>'。任何帮助表示赞赏!

编辑

我正在尝试使用以下方法手动创建链接:

但是我遇到两个错误:

我目前并不真正理解这些错误,感谢您提供任何帮助。

返回链接和普通文本的工作功能:

0 投票
1 回答
5107 浏览

haskell - cabal 安装二进制文件的路径

我正在按照说明为 Haskell 安装 snap 框架:

执行时

我获得-bash: snap: command not found了(在 Mac OSX 上),并且在安装 snap 后确实打开了一个新的终端窗口。二进制文件安装在

snap init当以这条路径开头时,snap 也可以正常工作。但是,这张票(适用于 windows cabal 安装程序)

建议这不应该发生。当 cabal 安装一个新包时,它应该将正确的目录添加到路径环境中。运行set | grep "snap"set | grep "cabal"不返回任何内容。关于如何(自动)将正确的目录添加到 PATH 环境以供将来安装的任何想法?

0 投票
2 回答
2446 浏览

haskell - 高性能应用服务器应该选择 Yesod 的 Warp 和 snap-server 中的哪一个?

我在 Yesod 的主页上看到了基准测试,但它们主要是针对静态文件的。Snap 网站上的基准已经过时。

我正在尝试将 Haskell 模块公开为服务。服务器的逻辑是接收 JSON 格式的函数名称和参数,调用 Haskell 函数并再次将输出作为 JSON 传递。引用透明性保证了线程安全以及记忆和缓存函数的能力。

如果我要支持 2k - 5k 的并发连接,我将如何实现它?这种方法的可扩展性如何?

0 投票
1 回答
217 浏览

haskell - Heist-0.13 的默认 AttrSplices 是什么?

我正在使用 Heist 做一个项目,由于它最近升级到 0.13 版本,我尝试了一下,发现原来的 HeistConfig 改变了很多。

所以现在我不能再使用 [] 作为默认 Splices,因为有 defaultInterpretedSplices 和 defaultLoadTimeSplices,我发现 defaultAttrSplices 只是错过了,那么我应该如何定义它呢?