expected:action/2返回Phoenix控制器中的Plug.Conn错误

Sri*_*man 4 elixir ecto phoenix-framework

我试图让Hyperledger在复制的私有池模式下工作.他们的论坛没有回复,因此这里有问题.此外,问题纯粹是一个技术错误.

Hyperledger使用Phoenix,Cowboy,Elixir,Ecto,Erlang,Postgre SQL,Node.js等.主节点处理请求,在一对表中插入一行并向辅助节点广播消息.辅助节点执行类似操作,并将消息发送回主节点以继续处理.这是问题的起点.主节点现在尝试读取先前插入的行但得到nil结果.此后抛出以下异常.

** (exit) an exception was raised:
    ** (RuntimeError) expected :action/2 to return a Plug.Conn
        (hyperledger) web/controllers/log_entry_controller.ex:1: Hyperledger.LogEntryController.phoenix_controller_pipeline/2
        (hyperledger) lib/phoenix/router.ex:297: Hyperledger.Router.dispatch/2
        (hyperledger) lib/phoenix/router.ex:2: Hyperledger.Router.call/2
        (hyperledger) lib/hyperledger/endpoint.ex:1: Hyperledger.Endpoint.phoenix_endpoint_pipeline/1
        (hyperledger) lib/plug/debugger.ex:90: Hyperledger.Endpoint."call (overridable 3)"/2
        (hyperledger) lib/phoenix/endpoint/render_errors.ex:34: Hyperledger.Endpoint.call/2
        (phoenix) lib/phoenix/endpoint/cowboy_handler.ex:50: Phoenix.Endpoint.CowboyHandler.upgrade/4
        (cowboy) src/cowboy_protocol.erl:435: :cowboy_protocol.execute/4
Run Code Online (Sandbox Code Playgroud)

为什么主节点无法读取在广播发送到辅助节点之前插入的内容.我怀疑与陈旧的数据库连接或类似的东西有关.任何帮助将不胜感激.如果我应该分享更多信息,请告诉我.

Jos*_*lim 9

您的控制器中有一个未返回的操作conn.所有操作必须接收conn并返回更新的conn.