问题标签 [dancer]

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

perl - 如何控制 Dancer webapp 的部署?

假设我有一个独立的 Dancer webapp。我可以通过运行 make dist 将其部署到主机,获取 tarball 然后通过 cpanm 或类似方法安装它。但是,我似乎无法找到如何控制此部署。当我只是在应用程序上制作 dist,然后在其他地方安装应用程序时,它似乎只是安装了应用程序的模块。但是,应用程序脚本、各种 html 文件和模板、环境配置文件并没有安装到本地文件系统中。

从系统 a 上的 webapp -> tarball -> 系统 b 上的 webapp 的正确方法是什么?

编辑:

抱歉,我应该澄清一下,我知道我可以手动完成整个事情。我很惊讶没有快速的方法来使用几个命令进行安装,或者在应用程序本身中指定它认为可以安装各种组件的位置。

由于我大部分时间都使用 cpanm,这简化了系统 B 上的事情,因为我可以将它解压缩到一个目录,更改它,运行“cpanm”。并将依赖项和应用程序的模块安装到系统库中。

但是,这会导致应用程序模块同时位于 <>/lib/ 以及系统 perllib 安装路径中。这也意味着用户需要对 perl 有所了解。

我想我只是想知道自从安装 Perl Web 应用程序的最佳系统是什么之后,事情是否发生了变化?三年前被问到。随着现代 Perl 最先进技术的所有进步,这似乎是现在已经处理的那种问题。

0 投票
1 回答
1147 浏览

perl - 如何使用 Test::WWW::Mechanize::PSGI 测试 Dancer 应用程序?

我不确定为 www mechanize 设置脚本应用程序的正确方法。我确实尝试了至少一种可行的替代方案,但是我正在尝试通过测试传递配置,以便我可以使用测试套件使日志记录更安静。

在脚本上运行do似乎允许测试运行,但日志变量设置不正确,同时似乎有更好的方法来做到这一点。

更新

我想我可能离解决方案越来越近了......

我从Plack PSGI的Dancer::Deployment 文档中获取了这个。但是,我从测试中收到 500 错误。

DBI 错误在这里不相关,但它们是我得到的错误输出的一部分。我不知道为什么它找不到/login/default.tt。我猜它的问题是它不知道我的视图文件夹在哪里,因为有问题的模板在views/login/default.tt. 即使在plackup. 我难住了。

0 投票
2 回答
204 浏览

perl - 我怎样才能使这些测试更加干燥?

我目前在几个测试文件的开头有以下内容,但它非常不干燥。但是我不确定将其移入自己的文件的最佳方法是什么。有什么建议么?

更新

不幸的是,我将它移到库中的部分问题是,一旦我完成,代码就会停止工作。我尝试将它封装到一个子例程中并返回$t,但这似乎不起作用。我试图弄清楚究竟什么需要进入图书馆,什么究竟需要进入测试。

0 投票
2 回答
1665 浏览

perl - perl dancer:模板中的 foreach 只打印第一个值

我在 Dancer 中有一个非常简单的问题:我有一组名称,我想在模板中打印每个名称。这些名称来自外部来源(不是数据库)。但是,当我尝试对模板中的列表执行 foreach 时,我只得到第一个值。

代码:

和模板:

这只会输出一个包含单个项目“一个”的列表。我错过了什么?

0 投票
3 回答
1261 浏览

perl - 带有 Dancer perl 的多个应用程序目录

有没有办法在舞者中有一个应用程序但有多个应用程序目录。

或者我可以做这样的事情:

我的项目在目录'foo'中。假设我有一个目录'bar'(不在'foo'内),它有一个名为'public'的目录。我的应用程序“foo”将此公众用作自己的公众,如果它搜索让我们说“/css/style.css”并且它不在“/bar/public/”中,它应该搜索“/foo/”上市/'。我怎样才能做到这一点?

0 投票
2 回答
621 浏览

perl - 加载模板的舞者插件

如何在不更改视图默认目录的情况下从不在“app/views”目录中的 Dancer::Plugin 加载模板?

这不起作用/它将默认视图路径添加到文件路径/:

0 投票
3 回答
424 浏览

perl - 使用 Dancer 时如何向模板工具包添加 vmethod?

如何添加一个vmethod使用 Dancer 时

如果没有办法,我该如何添加一个函数/如何执行一个添加到令牌中的函数的引用/?

0 投票
2 回答
283 浏览

perl - 我可以对 Makefile.PL 做些什么,这样当我运行 make test 时,它会运行测试套件,并将 dancer 环境设置为“test”?

我希望能够在舞者应用程序顶级源目录(由“dancer -a appname”生成的目录)中键入“make test”,并让它在环境设置为“test”的情况下运行测试。

或者,如果有人可以将我指向我可以称之为“开发舞者应用程序的最佳实践”的存储库,那就太好了!

0 投票
1 回答
643 浏览

perl - 钩子后的 Perl 舞者

Dancer 有没有办法在每次请求后执行代码?

我尝试了一个 after 钩子,但它似乎在文件请求后没有执行......有一个名为“after_file_render”的钩子在每次请求后执行了相当多的次数,但我不确定它的目的是什么. 每次请求后总是调用它吗?

0 投票
1 回答
975 浏览

perl - 舞者请求参数编码

假设我有一个以“cp1251”编码的页面,并且我提交了一个表单,那么我的参数将在“cp1251”中。但是当我在 Dancer 中访问我的参数时,我只会得到“?”标记。如何访问传递的数据?


更新:

Request.pm 中似乎有一个名为 _decode /bellow/ 的子程序,它在每个参数上都被调用。有没有办法告诉舞者不要打电话给这个潜艇?


更新2:

我找到了一种获取数据的方法。我不得不使用request->{_http_body}->{param},但我不应该params在它之前打电话,因为它会破坏它。


更新3:

为了使它工作,我必须charset从“config.yaml”中删除并添加

request->{_params_are_decoded} = 1;在之前的过滤器中。