问题标签 [haskell-wai]
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 - Wai 请求复印
我希望能够使用请求正文的内容作为缓存键的一部分。
我当前的代码如下所示:
我在这里看不到任何解决方案。如何从 cacheKey 和 req 对象复制请求或生成另一个请求?
或者事件更好还有其他更好的解决方案吗?
作为奖励点,有人可以指出我将 Wai Application 的类型从更改为的Request -> IO Response
理由Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived
。
haskell - 尝试实现 WAI HTTP Server + Fallback 代理时的 IO monad 问题
我想做的是创建一个有点智能的反向代理服务器,它应该自己处理一些请求并将其他请求转发到选择的后端。为了使它具有挑战性,我正在努力在 Haskell 中做到这一点,我完全是新手。
这是我到目前为止提出的代码:
它工作得很好,但是当我换成proxyStubApp
实际的时,proxyApp
我不得不到处添加IO
。特别是它被添加到app
,因此给我留下以下编译错误消息:
我觉得我理解它为什么会发生,但我不知道如何应对它:(或者我做错了什么?
谢谢!
PS 如果您想自己编译,这里是依赖项:wai warp http-types text bytestring wai-extra time http-reverse-proxy http-client
haskell - 在 WAI 的上下文中,“LBS”是什么意思?
WAI中有几个包含“LBS”的标识符:
Network.Wai.responseLBS
:: Status -> ResponseHeaders -> ByteString -> Response
-- | Store uploaded files in memory
lbsBackEnd
:: Monad m => ignored1 -> ignored2 -> m S.ByteString -> m L.ByteString
我在 WAI 文档中找不到任何提及“LBS”的内容。这是什么意思?
haskell - 无法在 Word8 上进行模式匹配
在我的 Servant/Wai 应用程序中,我想将所有请求从“domain.com”redict 到“www.domain.com”
错误是
我知道这意味着什么,我认为应该已经为 Word8 实现了 Show 类,如果没有,那肯定是有原因的。也许我做错了?
我该如何解决这个问题或以另一种更好的方式来解决这个问题?
更新:
我无法编译:
总是有类型不匹配。
haskell - 将标准输入流式传输到 Wai.EventSource
我想使用text/event-stream
. Network.Wai.EventSource看起来是个不错的选择。
我尝试使用此代码:
哪个(我认为)可以:
- 将标准输入读取为惰性字节流
- 将 ByteStream 拆分为行
- 为所有行生成一个 ServerEvent(这感觉不对 - 大概应该有多个事件?)
- 构建一个 WAI 应用程序
IO ServerEvent
- 将应用程序绑定到端口 1337
当我运行它(例如使用ping -c 5 example.com | stack exec test-exe
)时,它不会响应,直到整个 stdin 被读取。
如何构建一个每次从标准输入读取一行时刷新 HTTP 连接的 Wai 应用程序?
haskell - 从servant-0.4.4.7 迁移到servant-0.7.1
我使用了servant-0.4.4.7
. 以下是我的模型代码:
这段代码有效。但是当我使用时servant-0.7.1
,我得到了错误:
我知道存在类型不匹配,但如何解决它,我无法理解。
谢谢!
ajax - 在Servant中使用ajax
我将 Haskell 与servant-0.7.1
实现服务器一起使用。以下是我的源代码:
型号User
:
使用了testin curl
,如下图所示。
一切正常。将数据添加到数据库中。但是当我ajax
从后端使用时,如下图所示。
我得到一个错误!
调试器检查对象objectData
。好的(Object {userFam: "qqq", userIm: "www", userOt: "eee", userEmail: "rrr", userLogin: "ttt"…}
)。我不明白发生了什么事。
haskell - 加入两个 Network.Wai.Application
我分别使用servant
和Network.Wai.Application.Static
用于 json api 和静态文件服务。我想加入这两个应用程序,如果staticApp
服务失败,请求应该去jsonApp
。
我试着找出并阅读websocketsOr
它是如何做到的。Websockets或
我终于写道:
但似乎其他人(wai 本身)会这样做,处理许多可能的情况。但我找不到。
我缺少哪些边缘情况(例外??)以及我可以使用哪些其他 api 来做同样的事情?
haskell - Haskell-Scotty:设置自定义标题(x-frame-options)
Haskell新手在这里!
在我的 haskell 项目中,我使用 scotty 来提供一些动态生成的 html 页面。问题是页面无法在 iframe 中打开,因为“x-frame-options”标头设置为“SAMEORIGIN”。
如何将该标题更改为不同的内容?我想为所有响应设置该标题。有没有可以做到这一点的中间件?
谢谢!