问题标签 [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.
haskell - 如何使用 Happstack 创建 JSON Rest API?JSON 正文?
我正在尝试使用 Happstack 创建一个 JSON REST api。它应该允许带有 JSON 正文的 POSTS。我怎样才能做到这一点?happstack 的 API 中的所有函数似乎都是根据参数名称查找的。它认为正文始终是 url 编码的。
如果 Happstack 无法实现,我应该使用哪个框架?
haskell - 在没有 cabal 的情况下运行 HAppStack 应用程序
我正在尝试 HAppStack。我安装了 HAppStack 并创建了一个项目:happstack new project web
. 在其下使用项目留言簿创建的新文件夹“web”。所以现在我想运行它。我能做到的唯一方法就是运行cabal install
。但我想在不安装 cabal 的情况下运行我的应用程序!执行 run.sh 错误:找不到模块“Paths_guestbook”。我该怎么做?
编辑:一般来说,有没有办法像在 Snap 中那样运行 HAppStack 应用程序而无需重建?
jquery - Happstack jQuery 和纯文本文件内容
我正在尝试在 Happstack-build 网站上读出“用户提交的”纯文本文件。主要功能应该是获取文件内容,为了进一步使用,不需要文件的服务器端存储。
- 实现这一点的方法是什么?
- 文件是否需要上传或者ajax可以处理它,如果不需要,为什么?
- 示例实现会有所帮助
haskell - 在 happstack-lite 处理程序中捕获异常
我正在使用 happstack-lite 编写 Web 应用程序。当我的 ServerPart 响应处理程序调用纯函数并且此函数调用error时,整个处理程序失败并且 happstack 打印默认错误消息。
服务器错误:Prelude.head:空列表
我想知道是否有可能捕获此异常并返回自定义消息。不幸的是,我不知道如何在 ServerPart monad中使用catch 。
理想情况下,我的处理程序应如下面的代码所示:
更新:保存我的历史解决方案
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 有更多经验的人那里得到一些提示。
谢谢。
haskell - 将 MonadReader/MonadError 实例添加到 Transformer 类型
与使用 Happstack 时通常一样,我一直在制作自己的服务器 monad 用于处理程序,以涵盖我的数据库和会话,以及一些错误处理。我最近发现happstack-clientsession
-Package 有很大帮助,它阻止我编写自己的解决方案。
ClientSessionT
虽然在我自己的单子中接线有点麻烦。事实证明,它没有MonadReader
orMonadError
实例,所以我不能在我的包装器 monad 中实例化它们。
这是模块的完整代码:
我得到的错误很明显:源自MonadError
并且MonadReader
不起作用。但我需要那些,否则整个表演有点没用。
由于我一直无法弄清楚这些是如何完成的(并且依赖于deriving
),我想要一个涵盖这个特定问题的答案,并告诉我它是如何完成的。
haskell - 在网络路由中派生 PathInfo 类?
我正在阅读 Happstack 中的网络路由教程,但我不知道这是在做什么:
文档只是说:
我们使用 template-haskell 为 Sitemap 类型派生 PathInfo 的实例。
但它在哪里“存储”它?我认为haskell没有状态,是PathInfo
我们自己的东西,还是happstack的一部分?
如果有人可以解释一下,对于傻瓜?谢谢。
haskell - 网络路由不同的返回类型
我们构建具有返回类型的函数ServerPart Reponse
:
但是,在web-routes crash course 中,我们的函数将签名更改为以下内容:
我们之前不是有ServerPart,而不是ServerPartT吗?此外,是否有更简单的方法可以切换到网络路由,而无需更改每个方法的类型签名?
haskell - 有没有办法让 Happstack 重新编译和自动重新加载?
目前,在使用 happstack 进行构建时,.exe
每次更改模板或源代码时,我都必须重新编译我的项目,重新启动我的二进制文件(在 Windows 中)。
是否有一些工具可以自动执行此操作,例如 Yesod 或 Snap 的工具?
PS:这是我在 happstack bug tracker 上的问题。
haskell - 带字节串的 HSP
我在我的家庭项目中切换到HSP - 我喜欢它编译为 Haskell 代码。但是我的服务器使用 ByteString 进行输出。有没有让 HSP 生成 ByteString 输出的好方法?正如我所看到的输出和 HSP 的源代码,有硬编码"Any string literal" :: String
- 对 String 的显式类型限定。
我的观点是,使用惰性 ByteString 进行连接比 String 更快,并且由于输入和输出是 ByteString,因此没有理由将 String 仅用于模板化。
可能有 HSP 的替代品?