Erlang进程字典错误

时间:2014-07-29 18:20:42

标签: erlang chicagoboss

我将a连接到Extrenal Server。经过适当的授权过程后,我得到了响应JSON对象。

我现在正在尝试在视图中显示此JSON。

这是我到目前为止所做的。

我的第一个Action(从Javascript调用,启动授权过程并获取数据):

connect_external('POST',[])->
    ExternalData = get_external_data(),
    io:format("External Data Summary for put~n~p~n", [ExternalData]),
    put(?MY_EXTERNAL_DATA, ExternalData).

在第二个操作中(Javascript重定向到显示页面):

my_own_data('GET',[])->
    MyData = get(?MY_EXTERNAL_DATA),
    io:format("External Data Summary for get~n~p~n", [MyData]),
    {ok, [{mydata, MyData}]}.

我的目标是在视图中显示JSON对象。但我不明白。这是因为get()调用失败(put因为我可以打印JSON而成功)并且在控制台中得到:

External Data Summary for get
undefined

我对ChicagoBoss / Erlang很新。任何帮助都会非常感激。我应该使用进程字典吗?如果不是什么是替代方法?

2 个答案:

答案 0 :(得分:0)

正如Anthony Kong所指出的,我使用boss_session解决了这个问题:set_session_data(...)和boss_session:get_session_data()。

答案 1 :(得分:0)

raich的答案是正确的,看起来在这种情况下会话在生产中不起作用,尽管它们在开发中起作用。 更多关于这些方法的使用 -

-module(your_controller, [Req, SessionID]). 
.....
boss_session:set_session_data(SessionID, filter_start_date, Req:post_param("start_date")),
boss_session:get_session_data(SessionID, filter_start_date)
boss_session:remove_session_data(SessionID, filter_start_date)
.....