问题标签 [saturn-framework]
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.
f# - 如何在 F# Saturn 框架中自定义日志记录?
我创建了一个默认的 SAFE 应用程序,如此处所述。删除多余的东西,服务器是这样的:
现在,在运行应用程序时,我在控制台中看到一些日志记录,基本上是传入请求:
如何自定义日志记录?文档尽可能稀缺,没有示例。我需要一些简单的东西,比如记录“将返回 42...”。或者至少有一些案例链接。
logging - 如何在 F# Saturn 框架中更改日志级别?
当我运行我的 Saturn 应用程序时,我看到一些日志被写入控制台。
看起来他们以LogLevel.Info
. 如何进行更详细的日志记录,即如何正确设置 eg LogLevel.Trace
?
asp.net - 使用 F# 和 ASP.NET 启用 CORS
如何使用 F# 和 ASP.NET 启用 CORS。我正在尝试使用 Google 对用户进行身份验证,但在浏览器控制台中出现以下错误:
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“ http://localhost:8080 ”。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
一个可重现的例子在这里https://github.com/sashan/safe-google-auth
它使用 F# 和 SAFE 框架,因此如果您想尝试重现此设置,则需要该设置。
您还需要使用 Google+ API ( https://console.cloud.google.com/apis/library/plus.googleapis.com )设置客户端 ID 和密码
完成后将其添加到您的环境中:
重击:
Windows Powershell:
要构建它,请克隆 repo 并运行
然后单击Auth with Google
打开浏览器控制台窗口的按钮以查看错误。
f# - 如何转换任务序列到 MyType 的序列
所以我目前有一个 type 序列,seq<System.Threading.Tasks.Task<Restaurant>>
我想把它变成一个 type 序列seq<Restaurant>
。
我目前正在使用 TaskBuilder.fs 库,根据我的研究,我需要使用 let!或者做!对于这种情况,但它们需要task {}
与 Seq.map 一起使用时带回相同的任务类型。
所以我的结果是类型Seq<Restaurant>
,我需要为每家餐厅添加评论,所以我使用 Seq.map 来获取 restaurantWithReviews 这是seq<System.Threading.Tasks.Task<Restaurant>>
我无法使用的类型。
f# - F# Saturn 框架:“get”和“forward”有什么区别?
例如,路由器计算表达式中的以下代码
似乎具有完全相同的效果
在这两种情况下,只要客户端导航到 ,就会显示当前时间/time
。
在什么情况下这些会有所不同?
f# - 如何为 Saturn 应用程序构建集成测试
我正在尝试为使用Saturn 框架构建的小型 API 构建一些集成测试。
API 是使用常用的计算表达式构建的,例如Saturn
,application
等。controller
router
但是为了构建集成测试,我需要替换application
计算表达式 (ce) 并手工制作WebHostBuilder
.
我的application
ce 看起来像这样:
带有一个router
和controllers
...
上面的代码在我的 API 项目中,下面带有集成测试的代码在第二个项目中。后者对前者有项目参考。
运行测试时,它会失败并出现以下异常:
问题似乎与线路有关app.UseGiraffe(Server.apiRouter)
。apiRouter
是在 API 项目的模块中定义的Server
——但是当这段代码在测试项目中运行时Server.apiRouter
是null
.
但是,如果我将测试代码移动到与 - 测试代码相同的项目中,API
则测试工作完美。
如果从测试项目中调用 apiRouter
计算表达式,为什么会这样?null
f# - 如何在 SAFE-Stack 中正确强制使用 HTTPS?
根据土星文档,要在土星中拥有 HSTS,需要在force_ssl
以下文件中指定application
:
这适用于 Web 的已部署版本,但它会破坏本地开发。服务器不会在它写入的日志中返回响应,仅此而已Request redirected to HTTPS
。
是否可以同时强制 SSL 并保持本地开发方便?
f# - 使用 acceptJson 时,土星 API 没有响应 GET
acceptJson
当 GET 方法是管道的一部分时,F# Saturn Web 框架在检索 GET 方法的值时失败。
下面是我运行以重现该问题的示例代码:
appRouter
然后在代码use_router
部分添加。application
当我发送带有标头的请求时Content-Type:application/json
,响应是“404 not found”。但是,如果我plug acceptJson
从api
管道定义中删除,我会得到正确的响应。
如何使土星与plug acceptJson
?
asp.net - 使用 Saturn 框架,我如何在特定请求之外获得对 Websockets 集线器的引用?
我正在为一个玩具问题构建一个应用程序,以了解有关 SAFE 的更多信息。我有一些在服务器端运行的后台进程,有时它们需要向连接的客户端发送不提示的消息。这意味着我需要从任何特定请求之外引用 SocketHub。
目前我有一个可变变量,我在加入频道时将值传递给:
但是,在我看来,应该有更好的方法来访问集线器——我就是想不通。