问题标签 [suave]

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

f# - 可变的应用程序上下文

我正在构建一个需要大量值来计算答案的 REST 后端。此集合在启动时下载,然后按需下载,但需要每天更新几次。我不知道如何应对这种可变状态。我已经在 main 函数中尝试了 ref 和 mutable 变量,但是旧集合永远不会被释放,并且内存使用量在不受控制的情况下增长。

处理这种可变状态的正确方法是什么?

编辑

在准备我正在做的事情的样本时,我发现了第一个错误。我在做:

let sqlfeed() = use cmd = new SqlFeedType(connectionString) Some (cmd.Execute() |> Seq.toList)

现在我正在做我正在做这样的事情:

let sqlfeed() = Some (using (new SqlFeedType(connectionString)) (fun cmd -> cmd.Execute() |> Seq.toList))

然后

之前,当我调用 sqlfeed 并下载数据时,我看到内存增加了。在交替分配给 None 的连续调用中,内存不会被释放,并且总使用量只会攀升。现在,当我调用 sqlfeed 并将 None 分配给可变变量时,内存仍然没有被释放,但是在下一次调用 sqlfeed 时,内存被释放。

为什么我分配None时不会释放内存,但再次调用sqlfeed时会释放内存?

0 投票
1 回答
155 浏览

f# - Suave 不显示静态文件

所以我的服务器设置非常简单。如果路径是格式/article/something,它应该提供文件something.html夹内的静态文件static。出于某种原因,Files.filewebpart 显然正在返回None. 我添加了OK "File Displayed"webpart 以验证情况是否如此。OK从不执行。

有趣的是,这Console.WriteLine name条线完美地执行,something.html当我执行它时,我在控制台窗口中看到。看来问题是专门Files.file name返回无。

该文件something.html肯定存在于静态文件夹中,所以这不是问题。

关于可能导致这种情况的任何想法?

0 投票
1 回答
61 浏览

suave - 如何告诉 Suave 不要缓存 url?

我有 2 条路径被缓存

每一个后面都有一个x.html文件,在替换一些模板化部分后得到服务。

哪些正在被缓存,但我不希望它们。我怎么能告诉温文尔雅呢?


不是同一个问题,因为这个问题是通过将某些东西变成函数而不是告诉温文尔不要缓存或何时重新计算/重新评估 url 来解决的

0 投票
1 回答
147 浏览

linux - 与 netcoreapp2.0 相得益彰

我一直在关注这个 Suave 教程: https ://legacy.gitbook.com/book/theimowski/suave-music-store/details

总的来说,这看起来不错。但是,我试图让它在 Linux 上工作,由于某种原因,当 TargetFramework 设置为“net461”(未找到目标框架)时,我无法用代码编译它,所以我尝试将其更改为“netcoreapp2.0”。它编译了,但后来我遇到了一个问题: https ://theimowski.gitbooks.io/suave-music-store/content/en/css.html

最后它说要添加一个 WebPart: pathRegex "(.*)\.(css|png)" >=> Files.browseHome

这对我来说失败了。所有编译,但我得到

This page isn’t working localhost didn’t send any data.

我查看了 Suave 的源代码,结果发现“Files.browseHome”在“ctx.runtime.homeDirectory”下搜索文件。

我注意到这在我的机器上设置为: /home/<my_user_name>/.nuget/packages/suave/2.2.1/lib/netstandard1.6 显然,这不是我的项目目录,所以难怪它找不到文件。

我的问题是:我应该怎么做才能让我的 Suave 应用程序使用 Files.browseHome 正确处理我的 css/png 文件?

编辑:刚刚发现将 WebPart 替换为: pathRegex "(.*)\.(css|png)" >=> Files.browse "/home/<my_username>/<path_to_my_project>/bin/Debug/netcoreapp2.0/" 工作正常,但看起来很难看。知道如何让它变得更好吗?基本上我不想被迫在任何地方硬编码绝对路径。

0 投票
2 回答
189 浏览

f# - 使用 F# Suave 流式传输字符串数据

在 Suave 2.4.0 支持下TransferEncoding.chunkedHttpOutput.writeChunk我编写了以下代码通过 HTTP 流式传输数据。

虽然这可行,但我质疑使用的可靠性,ref并希望有更好的方法以更实用的方式做同样的事情。有没有更好的方法来做到这一点?假设我不能改变getStringsFromProducer

0 投票
1 回答
256 浏览

f# - 如何以文雅的方式处理“OPTIONS”请求

我正在移植一个原型应用程序,我使用 elm 和 python 烧瓶来使用 elm 和一个温文尔雅的后端。elm 应用程序正在调用 API 以从站点加载信息并执行其他操作。获取请求似乎没有问题,但是当我从 elm 进行 POST 时,我的行为变得很有趣 - 适用于烧瓶,但该请求似乎没有被 suave 接受。

抱歉,帖子太长了,详情如下:

榆树代码:

在 chrome 中调试我可以看到 python 烧瓶 OPTIONS 请求通过并且响应表明需要 POST

但是,对于 Suave,OPTIONS 请求是不完整的或中断的:

我的问题是我需要在 suave 程序方面做什么才能使其正常工作?我怀疑它要么是温文尔雅的配置,要么我需要编写一个 WebPart 来响应选项请求。温文尔雅代码如下:

谢谢阅读

0 投票
0 回答
258 浏览

xamarin - 错误:“未找到图像 'en/FSharp.Core.resources.dll.so':dlopen 失败/条件 `idx < t->rows' 未满足”

我无法找到我的应用程序崩溃的原因。我有一个奇怪的错误条件 `idx < t->rows' not met"

这在尝试执行嵌入 Web 服务器 (Suave) 时被激活:

但是,这在 iOS 中运行时有效。我重新安装了所有东西,但它失败了。

这是我的版本:

版本 7.5.2 (build 40) 安装 UUID: 8eb9f5aa-ff7e-48bd-b658-76b0bff55ddc 运行时: Mono 5.10.1.57 (2017-12/ea8a24b1bbf) (64-bit) GTK+ 2.24.23 (Raleigh theme) Xamarin.Mac 4.4 .1.178(主/eeaeb7e6)

套餐版本:510010057

NuGet 版本:4.3.1.4445

.NET Core 运行时:/usr/local/share/dotnet/dotnet 运行时版本:2.0.5 SDK:/usr/local/share/dotnet/sdk/2.1.4/Sdks SDK 版本:2.1.4 MSBuild SDK:/Library /Frameworks/Mono.framework/Versions/5.10.1/lib/mono/msbuild/15.0/bin/Sdks

Xamarin.Profiler 版本:1.6.2 位置:/Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

苹果开发者工具 Xcode 9.2 (13772) Build 9C40b

Xamarin.Mac 版本:4.4.1.193(Visual Studio 社区)

Xamarin.iOS 版本:11.12.0.4(Visual Studio 社区)哈希:64fece5f 分支:d15-7 构建日期:2018-05-29 20:00:44-0400

Xamarin.Android 版本:8.3.3.2(Visual Studio 社区)支持的 Android 版本:8.1(API 级别 27)

SDK 工具版本:26.1.1 SDK 平台工具版本:28.0.0 SDK 构建工具版本:27.0.3

Java SDK:/usr java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11,混合模式)

构建信息发布 ID:705020040 Git 修订版:cfe2fc0566bc4db990242959de40505a13f58352 构建日期:2018-05-30 11:24:18-04 Xamarin 插件:3ac7413ef51a88e06367313c27aec8f7292752a-l7 通道构建:

操作系统 Mac OS X 10.12.6 Darwin 16.7.0 Darwin Kernel Version 16.7.0 Tue Jan 30 11:27:06 PST 2018 root:xnu-3789.73.11~1/RELEASE_X86_64 x86_64

PD:奇怪的是,它只发生在模拟器中。在真实设备中它不会崩溃。

0 投票
0 回答
59 浏览

json - 如何在 Suave 中流式传输大型 json?

我有一个查询可以温和地返回一个大的 JSON:

查询返回一个 Seq。

现在,我一步将所有查询转换为 JSON,但想知道是否可以加快整个操作并流回结果:

0 投票
1 回答
86 浏览

json - 如何在 Suave 中为 JSON REST 调用启用压缩?

我想知道如何为我的 REST 调用压缩返回 JSON:

但是文档只谈论返回文件

0 投票
1 回答
142 浏览

f# - 在 Suave.IO 中处理多数据 Post 数据中的二进制 (excel) 文件

我正在尝试构建一个简单的 Suave.IO 应用程序来集中发送电子邮件。目前,该应用程序有一个端点,它将主题、正文、收件人、附件和发件人作为表单数据,并将它们转换为来自日志电子邮件帐户的 EWS 电子邮件消息。

在大多数情况下,一切都按预期工作,但是当附件之一是 excel 文件时,我会遇到文件损坏问题。在这些情况下,文件似乎已损坏。

目前,我将 request.multipartFields 过滤为仅标记为附件的文件,然后执行以下操作:

然后在发送之前将文件路径和附件名称馈送到 EWS 消息中。

同样,这似乎适用于除二进制附件之外的所有附件。Suave.IO 似乎自动将所有 multiPartFields 编码为 (string*string),当它是二进制数据时可能需要特殊处理。

我应该如何处理二进制文件的上传?

提前谢谢大家。