问题标签 [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.
perl - 如何理解子调用“sub ($c) {...}”?
我正在阅读来自以下网址的 mojo 示例: https ://mojolicious.org/ 下面是代码:
我的问题是如何获得由 perl 编译的这段代码?通常我会将子调用编码为:
这可以通过草莓 perl 很好地编译。虽然来自 mojo 的示例代码出现错误:
谁能告诉我为什么?
perl - 没有在我的 Mojolicious 应用程序中创建和写入日志文件
我的 Mojolicious 应用中有这个:
甚至没有创建日志文件。一段时间后,我自己创建了它,将其设为“chmod 777”,但现在仍未写入。
为什么?
perl - 尝试运行任何命令行命令时未找到 Mojolicious-lite 命令错误
我自己创建了 mojolicious-lite 应用程序(只是手动创建了我需要的文件,而不是使用“创建应用程序”命令)。我正在跟随这里的教程:https ://www.perl.com/article/193/2015/9/18/How-to-send-verification-emails-using-Mojolicious/
尝试在我的应用程序中使用任何命令行命令时,我遇到了错误。从本教程中,我特别想运行:
但更一般地说,我也注意到似乎没有命令对我有用,例如:
错误似乎与解析我的 postgres 助手有关?这是确切的错误消息:
除了从命令行调用命令外,我的应用程序运行良好。
这是我的应用程序的前 11 行:
perl - 在 mojolicious 中,如何保护图像不被公众看到
有人可以帮助我,拜托。我在 mojolicious Lite 中有应用程序
我想在没有会话登录的情况下阻止所有人的图像
当我输入http://myip:3000/images/imageX.jpg
我只想通过会话登录显示图像。
我的html代码是
perl - 在 Perl 中使用 Mojolicious 延迟对斜线命令的响应
我正在尝试使用 mojolicious 在 Perl 中创建一个松弛应用程序,并且我有以下用例:
Slack 从斜杠命令向我的 API 发送请求,并且需要在 3 秒的时间范围内做出响应。然而,Slack 也让我有机会在 30 分钟的时间内发送多达 5 个响应,但仍然需要在 3 秒内做出初始响应(它只是在初始回调中发送一个“late_response_url”,以便我可以发布一些内容到那个网址稍后)。就我而言,我想向 slack 发送一个初始响应,以通知用户该操作正在“运行”,并在一段时间后将我的慢速函数的实际结果发送给 Slack。
目前,我可以通过使用 fork() 生成第二个进程并使用一个进程按照 Slack 的指示立即响应,然后使用第二个进程完成其余工作并稍后响应来做到这一点。
我正在尝试使用 Mojolicious 的子进程来避免使用 fork()。但是我找不到办法让它工作....
我已经用 fork 做的示例代码是这样的:
所以问题是,无论我如何尝试,我都无法使用 Mojolicious 的子进程复制完全相同的代码。有任何想法吗?
提前致谢!
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
解决方案的方式生成一系列复杂的步骤,但最后一次同时发送所有通知:
mojolicious - 带有正则表达式的 Mojolicious Lite 路由
我正在尝试在 Mojolicious Lite 中使用正则表达式捕捉路线。
这是路线:
它只是返回未找到的页面。我想知道我是否缺少插件或某些内容发生了变化,但我找不到任何东西。
我尝试了一些变体,例如在第一个斜杠之前添加 ^,或者在qr之后更改字符,但我无法使其工作。
感谢您的时间。
perl - Mojolicious 使用用户信息重定向到“下”下的不同路径
我有两条路线
一个在“under”下,从“userinfo”进行身份验证,另一个用于公共
为什么我似乎无法将 userinfo 数据传递给新的 url?
Data::Dumper 的结果是
routing - 如何在 Mojolicious::Lite 中声明带有可选占位符的路由路径?
我需要声明一个可以处理两种请求的路由:
在这两种情况下,我处理数据的方式并没有什么不同,所以我希望它们在同一个地方定义。
我现在所做的是我使用了一个通配符占位符:
它以这种方式工作得很好,但我对这个解决方案不太满意,因为它不是很明确也不可读,而且我知道其他框架允许以看起来更令人满意的方式做类似的事情。
例如,以下使用Express.js 路由功能/vote/123
,/vote/123/2019-01-13
只允许在一个路由声明中到达。
注意:这个例子来自这个 SO question。
在尝试了各种可能性之后Mojolicious::Lite
,我发现 Mojolicious 路由中的正则表达式不是一个东西,我发现最好的解决方案是通配符占位符。我错过了什么吗?
perl - 我可以在 Mojolicious 的同一个控制器中转发操作吗
如果我用控制器类拆分我的应用程序,我可以做
如果我的操作在同一个 Mojolicious::Lite 文件中,我可以这样做吗?
现在我做
但我想做
为了以后的一致性和易于拆分,我应该决定这样做,同时保持一般的 Mojolicious::Lite 结构(即:单个文件)。
如何才能做到这一点?