问题标签 [mojolicious]

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

perl - 如何在 Mojolicious 的其他控制器中调用动作?

我有一个使用 Mojolicious 框架的应用程序。我在数据库中有一个表,其中包含错误响应列表和与之相关的其他详细信息。我已经创建了相应的结果和结果集来处理数据库表。还有一个控制器通过与结果集交互来获取有关错误的详细信息。

我的想法是在此控制器中调用一个操作,该操作将通过查询数据库来获取(由另一个控制器)传递给它的错误的详细信息,加载有关请求资源的环境的运行时信息,从而导致错误,创建一个响应并返回到调用它的控制器。

我正在努力处理从一个控制器到另一个控制器的呼叫。我如何在 Mojolicious 中做到这一点?$self我可以传递控制器对象(

0 投票
1 回答
517 浏览

json - 在 perl 中将 MongoDB 控制器项目转换为 JSON?

哪里有办法

有什么办法可以直接将数据转换成json字符串;

并将数据推送到 Mojolicious

0 投票
1 回答
158 浏览

perl - Jquery.get 超时行为?

我是网络编码的新手,最近一直在玩 JQuery。我注意到一些行为,想知道这是否是正常行为以及处理它的最佳方法。

我正在对我的网络服务器进行简单的获取,有时服务器可能需要几分钟才能返回其结果。我注意到我的服务器端代码被多次调用,在这种情况下,'/userprofile' 最多可以调用 3 次。

所以我的问题是;

1)这是正常行为吗?和 2)如果是这样,是 JQuery 发出额外的调用还是浏览器?3)有什么好的方法来处理这个?

我很欣赏问题 3 的答案可能是一个困难的答案,但非常感谢任何帮助。

非常感谢。

更新:

多谢你们,

好的,由于后端数据库很小,所以我不能用那个确切的调用产生问题,但我可以用另一个相同的调用。我在获取之前发出了警报,它只被调用了一次。我正在使用 Mojolicious 网络框架,所以我想知道它是否与此有关?我正在使用 Morbo 网络服务器。

这是我表现出这种行为的代码

当我的 utile::connectToDevice 需要一段时间来响应时,我看到整个回调被再次调用。

这是我的 morbo 网络服务器日志的输出。它确实似乎接到了两个电话。

0 投票
1 回答
783 浏览

perl - 在 Mojolicious::Lite 下以正确的格式呈现错误

我有一个under可能会产生错误的语句(例如,身份验证错误)。我到处使用内容协商,我想以under正确的格式返回错误。示例代码:

我可以render在里面使用under,但respond_to不会工作。可能under为此工作。但在那种情况下,我该怎么办?

0 投票
2 回答
322 浏览

perl - Perl 抓取脚本无法识别某些字符

我有一个在本地运行良好但在服务器上失败的脚本。

它显示不间断的空格符号

作为

打印到标准输出时。

在页面的解析中,如果我尝试用

什么都没有发生,也没有摆脱问号

似乎无论如何都会坚持下去。

奇怪的是,在本地运行脚本时这不是问题。

但是,本地计算机和服务器上的一个问题是撇号(在我正在抓取的 HTML 中表示为尖锐符号

始终表示为问号

即使明确尝试

困惑,请帮助。

0 投票
1 回答
2756 浏览

jquery - CORS:总是通过 jQuery.ajax 从 Mojolicious::Lite 获得空响应

我正在使用 jQuery 从Mojolicious::Lite我正在构建的 API 中获取一些数据。但我无法通过 Ajax 从 API 接收任何数据。我可以通过curl虽然获取数据。

更新:我可以在同一个域上通过 Ajax 获取数据。这是一个CORS问题。

这是我的客户代码:

这是API代码:

以下是所有请求的标头和数据:

OPTIONS /path

POST /path

不知道问题出在我的 JS 还是 Perl 代码上。

更新:可能在 JS 代码上。 更新CORS 似乎没问题。

0 投票
2 回答
1231 浏览

perl - 使用 Perl 和 Mojolicious 替换经过身份验证的用户代理登录/页面抓取

我正在尝试移植一些使用旧 Perl 模块编写的旧 Web 抓取脚本,以便仅使用 Mojolicious 工作。

使用 Mojo 编写了一些基本脚本,但对使用安全登录站点的经过身份验证的登录以及如何使用Mojo::UserAgent脚本进行处理感到困惑。不幸的是,我在文档中看到的唯一示例是没有表单的基本身份验证。

我试图转换为使用 Mojo:UserAgent 的 Perl 脚本如下:

所以上面的工作正常。如何转换为在 Mojolicious 中做同样的工作?

0 投票
1 回答
1742 浏览

perl - 使用 Mojolicious 用户代理解析 HTML

我有这样的html

h1 和 h2 之间的内容各不相同——我知道我可以在 Mojo::Dom 中使用 css 选择器来选择 h1 或 h2 或 p 标签的内容——但是如何选择 h1 和 h2 之间的所有内容?或者更一般地说,任何两组给定标签之间的所有内容?

0 投票
2 回答
1546 浏览

perl - 在 mojolicious 中测试 JSON PUT 请求

我正在为使用 Mojolicious 框架开发的应用程序创建测试用例。我正在测试路由以对进行的 REST 调用做出适当的响应。我使用 JSON 作为服务器和客户端之间的通信方式。为了测试和请求GET,我使用以下函数POSTDELETE

GET : get_ok()
POST: post_json_ok()
DELETE: delete_ok()

但是因为PUT我无法使用put_ok(). 我使用 put_ok() 的例子是我

my $t = Test::Mojo->new;
$t->put_ok('this/is/url/to/resource'=>{ "element" => "modified value"})->status_is(204)

每次都得到一个错误的请求状态(400),所以测试失败。我Test::Mojo用于测试我的应用程序。

附加信息:

$t->put_ok('http://localhost:3000/application/instances/system/test'=>{"model" => "testing put"})->status_is(204);

PUT这是对尝试的请求的确切测试。是正在尝试更改为
model的资源的属性,并且预期的状态响应是.testtesting put204

到控制器的映射是通过 $r->route('/application/instances/system/:id, id => qr/[A-Za-z0-9 ]+/ -> via('put') ->to(controller => 'system', action => 'update_sys');
此路由调用控制器中的update_sys方法完成的,这system就是资源的定位方式。

0 投票
1 回答
542 浏览

perl - 如何设置 MojoX::Sessions 的 cookie 过期时间?

无论我给expires()orexpires_delta()的过期值是什么,cookie 的过期时间总是一小时。如何更改它以使会话和 cookie 过期时间匹配?