无法从 POST 获取数据

Can't get the data from POST

我正在使用 Cowboy 和 ErlyDTL 在 Erlang 中制作一个简单的安全 (SSL) 网站以开始使用。 在一个页面上,我有一个带有两个输入文本字段和一个提交按钮的表单。

<form role="form" method="POST" action="favorite">
  <table>
    <tr>
      <td>
        Color:
      </td>
      <td>
        <input type="text" name="color" required>
      </td>
    </tr>
    <tr>
      <td>
        Number:
      </td>
      <td>
        <input type="number" name="nr" required>
      </td>
    </tr>
    <tr>
      <td>
        <button type="submit" class="btn btn-default">Submitt</button>
      </td>
    </tr>
  </table>
</form>

我在获取 POST 数据并对其进行处理的处理程序中遇到错误。处理程序看起来像(仅处理程序函数):

handle(Req, State) ->
  io:format("handle~n"),
  {ok, BodyQs, _Req} = cowboy_req:body_qs(Req),
  io:format("POST ~p~n", [BodyQs]),

  Color = proplists:get_value(<<"color">>, BodyQs),
  Nr  = proplists:get_value(<<"nr">>, BodyQs),
  io:format("AllValues ~p, ~p~n", [Color, Nr]),

  - rest of code -

当我尝试获取 BodyQs 变量时出现错误。我知道这一点,因为我收到了第一个 io:format 文本。

错误:

Error in process ... on node ... with exit value: {[reason, {badmatch, {error, timeout}}},{mfa,{favorite_handler, handle,2}},{stacktrace, [{favorite_handler,handle,2,[{file,"src/favorite_handler.erl"},{line,41}]},{cowboy_handler,handler_handle,4,[{file, "src/cowboy_handler...

我的代码有什么问题?

使用 ssl 时是否可以通过 POST 获取数据?

编辑: 我将获取 BodyQs 的命令放在 io:format 中,我在终端中获取了数据,但是当我尝试时它一直给我这个错误从 POST.

中获取我的数据
io:format("POST data: ~p~n", [cowboy_req:body_qs(Req)]),

提前致谢

我发现了我的错误。

我给了我所有的 Req 变量编号,例如(Req、Req2、Req3,...),起初我用“_”忽略了它们,除非我在其中放入一些数据,如会话。

所以不要忽略 Req 变量 ;)

这解决了我的下一个问题。