问题标签 [kemal]

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

crystal-lang - 使用块的 Kemal 配置

Kemal 目前允许通过以下方式设置配置选项:

Kemal.config.env = "development" Kemal.config.port = "3456"

我想用块做一些事情:

configuration do |config| config.env = "development" config.port = "3456" ... end

这甚至可能吗?
感谢您的任何见解。

0 投票
1 回答
478 浏览

memory-leaks - 如何释放为 Crystal 中的某些结构分配的内存 - 手动?

我有一个基于 Kemal 的 RESTful Web 服务,它返回“非常大”(从 10 到 17M 大小)的 JSON 数据块,这些数据是由“大”哈希结构中的 to_json 方法生成的。

根据 GC 警告消息,我的代码“可能导致内存泄漏”,而我自己的测量结果表明内存在应用程序运行时“泄漏”。

所以,我认为,手动释放为哈希分配的内存和它的 JSON 字符串表示会很好,但我不知道如何做到这一点:我对不良记录的 GC.free 方法的实验没有成功,我没有'不知道往什么方向继续我的调查...

请告诉我我该怎么做才能避免内存泄漏?

你可以在这里https://github.com/DRVTiny/Druid/blob/master查看我非常简单的应用程序(实际上它是在封闭的公司网段内开发的)的不是非常新鲜但通常是实际的版本/src/druid_mp.cr

导致内存泄漏的代码:

PS 我在每个用户请求之后插入了 after_all 钩子执行 GC.collect 。不知道,也许这可以解决我的问题(但我认为这根本不是正确的方法)。

UPD:在我将 GC.collect 添加到 after_all Kemal 钩子之后 - 内存泄漏消失了。但是全局 GC.collect 可能太慢了,而且据我所知,它会阻塞所有光纤和 socket.accept()。请让我知道我是否弄错了。

0 投票
1 回答
85 浏览

crystal-lang - 如何在 kemal 俚语中使用 content_for

content_for对我不起作用。我使用凯末尔和俚语。这里代码:

布局.slang

index.slang

在输出 HTML 中我看不到alert("msa7"). 我的代码有什么问题?

0 投票
1 回答
41 浏览

apache - apache2 后面的 Kemal,mod_proy 不提供静态文件

我有一个基于 kemalcr 的应用程序服务器在 http://127.0.0.1:3000上监听- 在 apache2 后面。

当在本地运行 kemalcr-app 时,一切都很好,静态文件 - 例如 /assets/stylesheets/styles.css 完美交付。

但是在 apache2 后面的生产主机上部署时 - 对 style.css 的请求将导致 404

我的虚拟主机的 apache 配置如下所示:

在 apache2 后面浏览 $mydom.com 时,kemal 响应良好 - 除了静态文件。

我的目录结构如下:

但是对http://mydom.com/assets/stylesheets/styles.css的请求会导致 404。有什么想法吗?

0 投票
1 回答
54 浏览

crystal-lang - 以 JSON 形式返回 Granite 验证错误

我有一个User带有一些验证的花岗岩模型。当有人向 发出POST请求时users/new,我想将验证错误(如果有)作为 JSON 返回。目前,我有:

但是当我尝试编译时,我得到:

0 投票
1 回答
88 浏览

crystal-lang - 从 JSON 参数创建 Granite 模型

我希望发生的事情:有人可以users/new使用参数发出发布请求,我想User从 JSON 参数创建一个对象。

在自述文件中,它给出了这个例子:

但是当我尝试这样做时,我得到了这个编译时错误:

以下是env.params.json登录到控制台时的样子:

任何帮助将非常感激。

0 投票
1 回答
67 浏览

jquery - 如何使用水晶语言和 kemal 计算每页

我有一些菜单,例如:

我想创建查看次数最多的快速操作下拉菜单。我的jQuery:

我的后端:

但是,这种方式计算所有页面。我将计算每页的页面,每个页面都是用户点击的。可以帮我。

0 投票
0 回答
126 浏览

mysql - MySql Connect 用 Kemal 迷失在 Crystal 语言中

我尝试将 Kemal Framework 与 Crystal-mysql 连接。这是我的碎片:

这是我的联系:

但是,如果我正在跑步,crystal src/book.cr我会遇到这个错误:

我该如何解决它。

0 投票
1 回答
264 浏览

concurrency - 在没有 IO 的光纤之间循环

据我所知,水晶循环光纤与 io,这意味着如果一根光纤正在等待 io,水晶将切换到另一根光纤。

如果我们生成了两根纤程,但其中一根在没有 io 的情况下进行持续计算/循环怎么办?

例如,使用下面的代码,服务器不响应任何 http 请求

0 投票
1 回答
41 浏览

crystal-lang - 如何在 Kemal after_all 方法中访问路由的返回值?

从 Kemal 文件中的 after_all 处理程序,我如何修改来自路由的响应?[见下面的例子]

该文档没有任何 after_all 路由的示例,而且我似乎无法在包含它的上下文中找到任何对象。我该怎么做?