gpt4 book ai didi

Perl Mojolicious 下

转载 作者:行者123 更新时间:2023-12-05 05:21:18 26 4
gpt4 key购买 nike

为了在这个有趣的应用程序中正确路由输入信息,我使用了“下方”功能。为什么这段代码不起作用,但第二个 block 中的代码却可以实际从数据库中删除所选项目。

 my $r_hostservices = $r->
under('/hosts_services:host_services_id')->
to('hosts_services#hosts_services');

$r_hostservices->
delete(':hosts_services_id')->
to('hosts#hosts_services_deletion')->
name('hosts_services_deletion');

第二个(工作) block 如下

 $r->delete('/hosts_services/:hosts_services_id')->
to('hosts#hosts_services_deletion')->
name('hosts_services_deletion');

最佳答案

package a;
use Mojo::Base 'Mojolicious';

# This method will run once at server start
sub startup {
my $self = shift;

# Load configuration from hash returned by config file
my $config = $self->plugin('Config');

# Configure the application
$self->secrets($config->{secrets});

# Router
my $r = $self->routes;

my $ur = $r->under('/foo/:bar');

$ur->delete()->to('example#two');
$ur->any()->to('example#one');
}

1;

您始终可以通过这种方式列出所有已定义的路由:

script/a routes

此功能对于在这种情况下进行调试非常有用。您可以在此处阅读有关 Mojolicious CLI 的更多信息 Mojolicious::Commands .

下面是带有上述路由的示例输出:

/foo/:bar  *       foobar
+/ DELETE
+/
*

因此,我们可以看到,Mojolicious 现在将为 DELETE 和任何其他请求方法提供 url /foo/:bar/,但尾部斜杠始终是可选的,和 /foo/:bar 将正常工作。

在这种情况下:under('/foo/:bar')->to(example#zero)example#zero是中间目的地,所以所有路由在此定义下,将访问 example#zero 并且仅在它继续执行自己的目标之后。因此,under( ... )->to( ... ) 可用于身份验证和其他类似任务。在我的示例中,under() 没有使用 to()

附言Mojolicious 附带了很棒的文档,我鼓励大家积极使用它

Mojolicious::Routes::Route

Mojolicious::Guides::Routing

关于Perl Mojolicious 下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43141771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com