【问题标题】:In Mojolicious, how do I display my session's data?在 Mojolicious 中,如何显示我的会话数据?
【发布时间】:2013-11-02 14:27:51
【问题描述】:

我希望这会被标记为重复,但我已经搜索和搜索,找不到任何相似的问题,更不用说答案了。当 Mojolicious 模板出错时,您会得到一个显示所有会话数据的页面。

为了调试,我创建了一个包含故意错误的“转储”页面,但这似乎效率低下。是否有一种简单的方法(如已定义的帮助程序)将相同格式正确的信息附加到我正在调试的页面?

【问题讨论】:

    标签: perl mojolicious


    【解决方案1】:

    您不必为此加载 Data::Dumper。内置助手之一 Data::Dumper。

    % if ($debug_mode) { dumper $session; }
    

    或具体值:

    % if ($debug_mode) { dumper $session->some_value; }
    

    【讨论】:

      【解决方案2】:

      您可以调用render_exception(这是抛出错误的作用)而不是抛出错误,但这也不是最好的主意。您应该尝试使用 tempire 出色的 Mojolicious::Plugin::ConsoleLogger,它将您可能想要的所有信息发送到浏览器的 javascript 控制台。

      【讨论】:

      • 我会给你一个 +1,但我还是希望能找到一个帮手,我可以将其包含在页面上,以便在那里转储所有内容。
      • 如果您想查看您正在呈现的页面(即不是您上面显示的 500 页面),您还如何查看调试输出?它会去哪里?这就是控制台的用途。如果您想实际呈现 500 屏幕之类的信息,您可以从 exception template 复制代码,但是没有针对您所要求的内容的一次性助手。
      【解决方案3】:

      您的意思是像 HTML 模板这样的页面吗?您可以将其插入到任何模板上的任何位置的 HTML 注释中:

      % if ($debug_mode) {
      %    my $session_dump = Data::Dumper::Dumper($self->session);
      <!--  session data is: <%= $session_dump %> -->
      % }
      

      然后在您要检查会话数据时查看页面源。

      【讨论】:

      • 我会给这个+1,因为我已经在我的页面中做类似的事情:
         但是,我想要什么,是为了轻松生成我现在添加到原始问题中的格式良好的输出。
      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多