问题标签 [mojolicious-lite]

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 投票
0 回答
154 浏览

perl - 如何理解子调用“sub ($c) {...}”?

我正在阅读来自以下网址的 mojo 示例: https ://mojolicious.org/ 下面是代码:

我的问题是如何获得由 perl 编译的这段代码?通常我会将子调用编码为:

这可以通过草莓 perl 很好地编译。虽然来自 mojo 的示例代码出现错误:

谁能告诉我为什么?

0 投票
1 回答
286 浏览

perl - 没有在我的 Mojolicious 应用程序中创建和写入日志文件

我的 Mojolicious 应用中有这个:

甚至没有创建日志文件。一段时间后,我自己创建了它,将其设为“chmod 777”,但现在仍未写入。

为什么?

0 投票
0 回答
64 浏览

perl - 尝试运行任何命令行命令时未找到 Mojolicious-lite 命令错误

我自己创建了 mojolicious-lite 应用程序(只是手动创建了我需要的文件,而不是使用“创建应用程序”命令)。我正在跟随这里的教程:https ://www.perl.com/article/193/2015/9/18/How-to-send-verification-emails-using-Mojolicious/

尝试在我的应用程序中使用任何命令行命令时,我遇到了错误。从本教程中,我特别想运行:

但更一般地说,我也注意到似乎没有命令对我有用,例如:

错误似乎与解析我的 postgres 助手有关?这是确切的错误消息:

除了从命令行调用命令外,我的应用程序运行良好。

这是我的应用程序的前 11 行:

0 投票
2 回答
94 浏览

perl - 在 mojolicious 中,如何保护图像不被公众看到

有人可以帮助我,拜托。我在 mojolicious Lite 中有应用程序

我想在没有会话登录的情况下阻止所有人的图像

当我输入http://myip:3000/images/imageX.jpg

我只想通过会话登录显示图像。

我的html代码是

0 投票
1 回答
161 浏览

perl - 在 Perl 中使用 Mojolicious 延迟对斜线命令的响应

我正在尝试使用 mojolicious 在 Perl 中创建一个松弛应用程序,并且我有以下用例:

Slack 从斜杠命令向我的 API 发送请求,并且需要在 3 秒的时间范围内做出响应。然而,Slack 也让我有机会在 30 分钟的时间内发送多达 5 个响应,但仍然需要在 3 秒内做出初始响应(它只是在初始回调中发送一个“late_response_url”,以便我可以发布一些内容到那个网址稍后)。就我而言,我想向 slack 发送一个初始响应,以通知用户该操作正在“运行”,并在一段时间后将我的慢速函数的实际结果发送给 Slack。

目前,我可以通过使用 fork() 生成第二个进程并使用一个进程按照 Slack 的指示立即响应,然后使用第二个进程完成其余工作并稍后响应来做到这一点。

我正在尝试使用 Mojolicious 的子进程来避免使用 fork()。但是我找不到办法让它工作....

我已经用 fork 做的示例代码是这样的:

所以问题是,无论我如何尝试,我都无法使用 Mojolicious 的子进程复制完全相同的代码。有任何想法吗?

提前致谢!

0 投票
3 回答
479 浏览

perl - websocket异步反馈长流程

我正在尝试在网页中实现反馈,让用户从 Excel 工作表开始一个漫长的过程(视觉,是的......)。对于每行数据,处理时间约为1秒,常见的数据长度在40到100条之间,因此整体处理时间可以大于一分钟。

我正在页面中显示数据的预览,通过 websocket 启动进程,并希望显示来自同一个 websocket 的进展。

处理本身是由外部包完成的,页面复杂度很小,所以我把它包装在一个Lite文件中。

我的问题是,在 websocket 路由中开始的长时间处理会阻塞反馈,直到它完成并且最后同时发送所有进程事件。据我了解,它与Mojolicious的事件循环有关,我应该单独开始处理以避免冻结websocket的处理。

请注意,我尝试了一个单独的反馈渠道,EventSource在处理过程中向客户端推送一些进展,但它在最后一次显示相同的完成。

这是我的代码简化,我使用一个sleep()来模拟漫长的过程。我从

您能否建议如何修改 websocket 路由以允许实时反馈?

编辑:

Grinnz 提供了一个合适的解决方案,但为了记录,这是我尝试Mojo::IOLoop::Subprocess回调但我没有任何反馈。我在 Linux 上运行并且Subprocess似乎分叉,并且父进程似乎立即终止了 websocket 编辑:否:我最终发现它$ws->send()位于错误的位置,因为它应该放在在sub{}父端运行的第二个,而不是在子进程中运行的第一个。此代码应重构为subprocess每个循环迭代一个,最后一步用于通知结束。

这是修改后的on(json)

以及相应的日志:

我还尝试以Mojo::IOLoop->delay类似于Promise解决方案的方式生成一系列复杂的步骤,但最后一次同时发送所有通知:

0 投票
1 回答
114 浏览

mojolicious - 带有正则表达式的 Mojolicious Lite 路由

我正在尝试在 Mojolicious Lite 中使用正则表达式捕捉路线。

这是路线:

它只是返回未找到的页面。我想知道我是否缺少插件或某些内容发生了变化,但我找不到任何东西。

我尝试了一些变体,例如在第一个斜杠之前添加 ^,或者在qr之后更改字符,但我无法使其工作。

感谢您的时间。

0 投票
1 回答
220 浏览

perl - Mojolicious 使用用户信息重定向到“下”下的不同路径

我有两条路线

一个在“under”下,从“userinfo”进行身份验证,另一个用于公共

为什么我似乎无法将 userinfo 数据传递给新的 url?

Data::Dumper 的结果是

0 投票
1 回答
430 浏览

routing - 如何在 Mojolicious::Lite 中声明带有可选占位符的路由路径?

我需要声明一个可以处理两种请求的路由:

在这两种情况下,我处理数据的方式并没有什么不同,所以我希望它们在同一个地方定义。

我现在所做的是我使用了一个通配符占位符

它以这种方式工作得很好,但我对这个解决方案不太满意,因为它不是很明确也不可读,而且我知道其他框架允许以看起来更令人满意的方式做类似的事情。

例如,以下使用Express.js 路由功能/vote/123/vote/123/2019-01-13只允许在一个路由声明中到达。

注意:这个例子来自这个 SO question

在尝试了各种可能性之后Mojolicious::Lite,我发现 Mojolicious 路由中的正则表达式不是一个东西,我发现最好的解决方案是通配符占位符。我错过了什么吗?

0 投票
1 回答
74 浏览

perl - 我可以在 Mojolicious 的同一个控制器中转发操作吗

如果我用控制器类拆分我的应用程序,我可以做

如果我的操作在同一个 Mojolicious::Lite 文件中,我可以这样做吗?

现在我做

但我想做

为了以后的一致性和易于拆分,我应该决定这样做,同时保持一般的 Mojolicious::Lite 结构(即:单个文件)。

如何才能做到这一点?