【发布时间】:2016-10-18 10:23:40
【问题描述】:
我正在尝试将应用程序从 Dancer 迁移到 Dancer2。我的想法是将代码分成由模板提供的路由和作为 Ajax (API) 调用的路由。
我的基础应用是:
use strict;
use warnings;
use FindBin;
use Plack::Builder;
use Routes::Templates;
use Routes::Login;
builder {
mount '/' => Routes::Templates->to_app;
mount '/api' => Routes::Login->to_app;
};
我在想Routes::Templates 包没有任何序列化程序,而Routes::Login 包将有 JSON 序列化。我用过
set serializer => 'JSON';
在Routes::Login 包中。
但是,我也希望这些共享会话数据,以便每个都有一个共同的应用名称
use Dancer2 appname => 'myapp';
在每个文件中。这似乎在序列化方面遇到了麻烦。 Routes::Template 路由没有正确返回,因为它试图被编码为 JSON。这是错误:
无法序列化内容:需要 hash- 或 arrayref(不是简单的标量,使用 allow_nonref 允许这样做)
我已阅读所有文档,包括这些:
- How can I use Dancer2::Plugin::Database when my code is split into multiple files?
- https://github.com/wyoung/advent-calendar/tree/master/danceradvent/public/articles/2015
但我仍然不清楚序列化程序是如何按包分隔的。
【问题讨论】: