Elixir Plug.Parsers.JSON

问题描述:

我正在用Elixir Plug编写一个小的http服务器,并且在理解它的解析器工作原理时遇到了一些麻烦。我无法弄清楚如何在我的路由器中访问解析器的结果。我现在有Elixir Plug.Parsers.JSON

... 
plug Plug.Parsers, parsers: [:json], 
       json_decoder: Poison 
plug :match 
plug :dispatch 
forward "/admin" , to: VoucherSite.Admin.AdminRouter 
... 

,并在管理路由器我想从所谓的上述

put "/user" do 
    ...access result here... 
    respond(conn, {:ok, ""}) 
end 

这种感觉就像我失去了一些东西明显分析器访问解析的结果,但我所有访问是conn这是连接,所以不知道如何从请求中获得解析的正文。

Plugbehaviour,有2个回调:init/1call/2。后者收到Plug.Conn结构并返回可能修改Plug.Conn结构。这允许插头。

%Plug.Conn{assigns}旨在用于更新对不同插头的呼叫之间的映射。

Plug.Conn implementsInspect代数开箱即用,所以才这样做:

Logger.debug inspect(conn) 

的地方,你会看到分析器存储体

(我敢打赌它在 assigns地图的一些关键。)
+0

啊是的,它似乎是在body_params谢谢:) – BrendanM