问题标签 [scotty]
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 - 斯科蒂网络服务
我需要使用 Haskell 中的scotty web 框架创建一个 web 服务来在不同的货币之间进行转换。
Web 服务应响应获取请求,例如 /convert/15?to=usd&from=eur。
到目前为止我有这个代码:
因此,当您在浏览器中执行:http://localhost:3000/Tony 时,结果是:嗨,Tony,怎么了!
问题是我不知道如何更改代码以获得'/convert/15?to=usd&from=eur.' 作为请求并得到正确的答案。
希望任何人都可以帮助我。
提前致谢。
用最终解决方案编辑:
haskell - 如何使用带有 Intellij(Haskell 插件)的 scotty 登录到终端?
所以我发生了一些奇怪的事情。这是一个说明性的代码示例:
每当我输入“localhost:8000/”时,我的消息都应该打印到 IntelliJ 控制台,但事实并非如此。然而,当我评论 scotty 的东西时,只有:
IntelliJ 打印出来没有问题。我究竟做错了什么?当我使用 Windows 命令提示符运行可执行文件(例如 ghc --make 创建它,然后运行它)时,一切正常 - “我即将提供请求!” 每次我输入“localhost:8000/”时都会打印到命令提示符终端
haskell - 使用 Scotty 检索 HTTP 引荐来源网址
$_SERVER[HTTP_REFERER]
允许在 PHP 中检索引用 URL,如何在 Haskell 中执行相同的操作?
haskell - 在 Scotty 服务器中分叉新线程
我在 Scotty 使用两个 API 对 Web 服务器进行原型设计:
/add/:id
使用给定的 ID 启动一个 asyc 任务。/cancel/:id
杀死给定 ID 的任务。
基本上,客户端通过提供一些 ID 来启动异步任务,也可以通过 ID 终止当前任务。
我Control.Concurrent.forkIO
用来启动一个线程,forkIO
返回一个ThreadId
我存储在 Scotty 全局状态中的 Map: type AppState = Map TaskId ThreadId
。
/add/:id
不会立即返回,而是等待任务完成并将结果返回给客户端。
我的问题是forkIO
与MonadIO m => ActionT Text m ()
. 我需要能够在我通过text :: Text -> ActionT Text m ()
的操作完成后调用。IO ()
forkIO
这需要从那显然MonadIO m
是IO
一个错误,但我无法解决它并找到任何解决方案。
这是完整的例子:
haskell - 如何使用 Scotty 在前端显示来自 HTTP GET 请求的响应?
我是第一次尝试 Scotty,但我似乎无法摆脱我的 GET 请求。响应作为类型返回
我知道我需要将它转换为 Scotty 可以输出的类型,但我不知道该怎么做。
我的完整代码是:
我尝试使用 LiftIO,但这仍然给我一个类型错误。我想知道我应该如何准确地转换我的响应,以便我可以在前端显示它,就像我用 html 显示我的初始“Hello World”一样。
sqlite - 与 Scotty 和 Sqlite 一起工作,但在 Monads 上遇到了一些麻烦
嗨,我是 Haskell 的新手,我一直在使用 Scotty 和 Sqlite 开发一个小型 Web 应用程序。
我在 Scotty Actions 中执行 Sqlite 操作时遇到问题。当单独使用这两个库时,我有点理解。
这是我的代码的 MVP
因此,正如您所看到的,我仍然过于迫切地思考。我知道帖子的类型是 ActionM () -> ScottyM () 并且我知道关闭数据库的类型是 IO ()
所以我认为我需要的是一个复合函数,它是 ActionM () -> IO () -> ScottyM () 我只是不知道如何写这个。
这是在正确的轨道上吗?
非常感谢任何和所有建议。
haskell - haskell webframeworks 速度,GHCi vs Compiled
今天我在本地机器上做了一些基准测试来比较不同 Haskell Web 框架的纯文本速度,我发现了一些奇怪的东西。与编译版本相比,我测试的几乎所有框架在从 GHCi 运行时都表现得更好。这是我的结果
我知道这些数字并不能反映这些框架的速度,因为它们没有得到很好的调整或优化,但我的问题是为什么这些框架从 GHCi 启动时性能更好。难道我做错了什么 ?
为了构建它们,我只需运行stack build
rest - 如何将所有请求(全部捕获)与 Haskell Scotty 匹配?
我有一个简单的服务器
我想index.html
在所有路线上服务,例如。get "*" $ file "./index.html"
,但这不起作用。如何做到这一点?
mysql - 在haskell中使用mysql简单的Scotty api
我正在关注本教程,它使用 scotty 和持久性来创建一个简单的 API。
但是,我正在尝试使用 scotty 和 mysql 简单库创建一个简单的 api。
现在我被困在代码中的某一点。
在下面的代码中,我无法将getUser函数转换为键入“ActionT Error ConfigM”,因为我的代码失败了。
谁能帮助我了解如何转换 getUser 函数以实现所需的类型签名?
代码
错误
haskell - HSpec中的多个前功能?
我有一个可以通过调用此函数来创建的内存存储库:
whereInMemoryGameRepository
定义如下:
在为我的 Scotty 应用程序编写测试时,我看到了使用这种方法的示例:
这一切都很好,但我还需要以某种方式初始化 InMemoryGameRepository(通过调用newEmptyRepository
)并在我的测试中使用创建的实例。因此,我已更改app
为:
我正在尝试创建一个使用存储库和的测试,IO Application
例如像这样(不起作用):
wherestartGame
定义如下:
在这里,编译器说(显然)repo
不在范围内。但我怎样才能做到这一点?即我想在测试中共享 和 的单个newEmptyRepository
实例app
?
Ps:你可以在github上看到完整的应用程序。