问题标签 [happstack]

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 回答
1949 浏览

haskell - 如何使用 Happstack 创建 JSON Rest API?JSON 正文?

我正在尝试使用 Happstack 创建一个 JSON REST api。它应该允许带有 JSON 正文的 POSTS。我怎样才能做到这一点?happstack 的 API 中的所有函数似乎都是根据参数名称查找的。它认为正文始终是 url 编码的。

如果 Happstack 无法实现,我应该使用哪个框架?

0 投票
2 回答
185 浏览

haskell - 在没有 cabal 的情况下运行 HAppStack 应用程序

我正在尝试 HAppStack。我安装了 HAppStack 并创建了一个项目:happstack new project web. 在其下使用项目留言簿创建的新文件夹“web”。所以现在我想运行它。我能做到的唯一方法就是运行cabal install。但我想在不安装 cabal 的情况下运行我的应用程序!执行 run.sh 错误:找不到模块“Paths_guestbook”。我该怎么做?

编辑:一般来说,有没有办法像在 Snap 中那样运行 HAppStack 应用程序而无需重建?

0 投票
2 回答
390 浏览

jquery - Happstack jQuery 和纯文本文件内容

我正在尝试在 Happstack-build 网站上读出“用户提交的”纯文本文件。主要功能应该是获取文件内容,为了进一步使用,不需要文件的服务器端存储。

  • 实现这一点的方法是什么?
  • 文件是否需要上传或者ajax可以处理它,如果不需要,为什么?
  • 示例实现会有所帮助
0 投票
1 回答
221 浏览

haskell - 在 happstack-lite 处理程序中捕获异常

我正在使用 happstack-lite 编写 Web 应用程序。当我的 ServerPart 响应处理程序调用纯函数并且此函数调用error时,整个处理程序失败并且 happstack 打印默认错误消息。

服务器错误:Prelude.head:空列表

我想知道是否有可能捕获此异常并返回自定义消息。不幸的是,我不知道如何在 ServerPart monad中使用catch 。

理想情况下,我的处理程序应如下面的代码所示:

更新:保存我的历史解决方案

0 投票
1 回答
162 浏览

haskell - 使用 Reader 扩展 ServerPartT Monad

我正在编写一个 Happstack 服务器,并且我有一个 MongoDB 数据库要连接。为此,我做了一个函数来创建一个连接池

Action然后是一个使用创建的池运行的函数:

很明显,这需要将pool所有路由作为参数携带。我想将它包装成一个ReaderT,这样它就runDB可以有一个类似Action IO a -> ServerPart (Either Failure a)甚至更好的类型,Action IO a -> ServerPart a其中失败将自动导致 HTTP 错误 500。

我很难理解如何实现这一点,我很想从对 Haskell monads 和 happstack 有更多经验的人那里得到一些提示。

谢谢。

0 投票
2 回答
835 浏览

haskell - 将 MonadReader/MonadError 实例添加到 Transformer 类型

与使用 Happstack 时通常一样,我一直在制作自己的服务器 monad 用于处理程序,以涵盖我的数据库和会话,以及一些错误处理。我最近发现happstack-clientsession-Package 有很大帮助,它阻止我编写自己的解决方案。

ClientSessionT虽然在我自己的单子中接线有点麻烦。事实证明,它没有MonadReaderorMonadError实例,所以我不能在我的包装器 monad 中实例化它们。

这是模块的完整代码:

我得到的错误很明显:源自MonadError并且MonadReader不起作用。但我需要那些,否则整个表演有点没用。

由于我一直无法弄清楚这些是如何完成的(并且依赖于deriving),我想要一个涵盖这个特定问题的答案,并告诉我它是如何完成的。

0 投票
1 回答
80 浏览

haskell - 在网络路由中派生 PathInfo 类?

我正在阅读 Happstack 中的网络路由教程,但我不知道这是在做什么:

文档只是说:

我们使用 template-haskell 为 Sitemap 类型派生 PathInfo 的实例。

但它在哪里“存储”它?我认为haskell没有状态,是PathInfo我们自己的东西,还是happstack的一部分?

如果有人可以解释一下,对于傻瓜?谢谢。

0 投票
1 回答
92 浏览

haskell - 网络路由不同的返回类型

通过happstack-lite 教程

我们构建具有返回类型的函数ServerPart Reponse

但是,在web-routes crash course 中,我们的函数将签名更改为以下内容:

我们之前不是有ServerPart,而不是ServerPartT吗?此外,是否有更简单的方法可以切换到网络路由,而无需更改每个方法的类型签名?

0 投票
1 回答
391 浏览

haskell - 有没有办法让 Happstack 重新编译和自动重新加载?

目前,在使用 happstack 进行构建时,.exe每次更改模板或源代码时,我都必须重新编译我的项目,重新启动我的二进制文件(在 Windows 中)。

是否有一些工具可以自动执行此操作,例如 Yesod 或 Snap 的工具?

PS:是我在 happstack bug tracker 上的问题。

0 投票
1 回答
119 浏览

haskell - 带字节串的 HSP

我在我的家庭项目中切换到HSP - 我喜欢它编译为 Haskell 代码。但是我的服务器使用 ByteString 进行输出。有没有让 HSP 生成 ByteString 输出的好方法?正如我所看到的输出和 HSP 的源代码,有硬编码"Any string literal" :: String- 对 String 的显式类型限定。

我的观点是,使用惰性 ByteString 进行连接比 String 更快,并且由于输入和输出是 ByteString,因此没有理由将 String 仅用于模板化。

可能有 HSP 的替代品?