【发布时间】:2017-05-16 14:00:40
【问题描述】:
我正在使用 Erlang 工具链(OTP、rebar3、cowboy、jsx...)编写一个 web 应用程序。以下代码不起作用,因为在运行时找不到jsx:is_json/1。
handle_login(Req, State) ->
{ok, Data, _} = cowboy_req:body(Req),
case jsx:is_json(Data) of
false -> cowboy_req:reply(400,
[
{<<"content-type">>, <<"application/json">>}
],
<<"Invalid JSON">>,
Req);
堆栈跟踪:
{[{reason,undef},
{mfa,{erbid_api_handler,handle,2}},
{stacktrace,
[{jsx,is_json,[<<"{\"username\":\"tom\"}">>],[]},
{erbid_api_handler,handle_login,2,
[{file,
"/Users/khanhhua/dev/project-erbid/_build/default/lib/erbid/src/erbid_api_handler.erl"},
{line,45}]},
{erbid_api_handler,handle,2,
... truncated for brevity
我需要知道如何解决这个问题。谢谢。
【问题讨论】:
-
您正在运行什么 rebar3 命令来启动您的应用程序?
-
@Stratus3D 感谢您的评论。这是
_build/default/rel/erbid_alpha/bin/erbid_alpha foreground。无论如何,我已经解决了这个愚蠢的问题。
标签: functional-programming erlang rebar3