加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – mojolicious禁用点占位符路由

发布时间:2020-12-16 06:05:28 所属栏目:大数据 来源:网络整理
导读:背景 我有这个路由 我的$foo = $r- get(‘/ foo /:asd’) – to(‘Foo#bar’); 在控制器中,我只是使用传递的参数渲染一些json (在Mojolicious :: Controller :: REST的帮助下) $self- data(‘param’= $self- param(‘asd’)); 问题 向/ foo / bar发送请求
背景

我有这个路由

我的$foo = $r-> get(‘/ foo /:asd’) – > to(‘Foo#bar’);

在控制器中,我只是使用传递的参数渲染一些json
(在Mojolicious :: Controller :: REST的帮助下)

$self-> data(‘param’=> $self-> param(‘asd’));

问题

向/ foo / bar发送请求时,它按预期工作:

{ “数据”:{ “参数”: “酒吧”}}

但是当我试图传递一个包含点的字符串,例如一封电子邮件(email@email.com)时,mojo将点作为斜线渲染.我在第一个地方定义的路由不再相关,因为现在模式已更改为foo /:bar /:baz

解决方案

我被告知解决方案就在这里:
https://github.com/kraih/mojo/blob/master/t/mojolicious/routes.t#L218
这是有道理的,但我不明白如何将它与我所拥有的结合起来.

我试图添加$foo-> pattern-> placeholder_start(”);对我的路由,但仍然,模式正在改变,它再次无关紧要.看起来它不会禁用与我的问题相关的点.

我尝试在$r变量上实现模式方法(这是Mojo的路由 – $self-> routes)

最重要的是,我只需要为某些路由禁用点占位符或完全禁用.

谢谢

解决方法

Mojolicious支持三种占位符参数:

Standard

my $foo = $r->get('/foo/:asd')->to('Foo#bar');

Relaxed

my $foo = $r->get('/foo/#asd')->to('Foo#bar');

Wildcards

my $foo = $r->get('/foo/*asd')->to('Foo#bar');

标准占位符可以匹配除以外的所有字符.和/.宽松的占位符可以匹配除/之外的所有字符.通配符占位符可以匹配所有字符.所以如果你想支持参数值.或/,您必须使用宽松或通配符样式的占位符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读