0

请帮助我,因为我正在创建一个新项目,即使用 erlang-cowboy 登录页面创建一个登录页面,当用户输入数据并单击浏览器中的提交按钮时,登录页面包含用户名、密码和提交按钮,用户的详细信息应保存在服务器中为此,我创建了一个文件 toppage_handler.erl 但是当我输入 make 命令时出现错误

错误:

root@ErlangCowboy:~/cowboy/examples/practice_world# make
make[1]: Entering directory `/root/cowboy/examples/practice_world/deps/cowboy'
make[2]: Entering directory `/root/cowboy/examples/practice_world/deps/cowlib'
 APP    cowlib.app.src
make[2]: Leaving directory `/root/cowboy/examples/practice_world/deps/cowlib'
make[2]: Entering directory `/root/cowboy/examples/practice_world/deps/ranch'
 APP    ranch.app.src
make[2]: Leaving directory `/root/cowboy/examples/practice_world/deps/ranch'
 APP    cowboy.app.src
make[1]: Leaving directory `/root/cowboy/examples/practice_world/deps/cowboy'
 ERLC   practice_world_app.erl practice_world_sup.erl toppage_handler.erl
src/toppage_handler.erl:14: syntax error before: '{'
src/toppage_handler.erl:4: function handle/2 undefined
make: *** [ebin/practice_world.app] Error 1

并且 toppage_handler.erl 文件是:

-module(toppage_handler).
-export([init/3]).
-export([handle/2]).
-export([terminate/3]).

init(_Transport, Req, []) ->
    {ok, Req, undefined}.

handle(Req, State) ->
    {Method, Req2} = cowboy_req:method(Req),
    case Method of
        <<"POST">> ->
            Body = <<"<h1>This is a response for POST</h1>">>
            {ok, Req3} = cowboy_req:reply(200, [], Body, Req3),
            {ok, Req3, State};
        <<"GET">> ->
            Body = <<"<h1>This is a response for GET</h1>">>
            {ok, Req3} = cowboy_req:reply(200, [], Body, Req3),
            {ok, Req3, State};
        _ ->
            Body = <<"<h1>This is a response for other methods</h1>">>
            {ok, Req3} = cowboy_req:reply(200, [], Body, Req3),
            {ok, Req3, State}
    end.

terminate(_Reason, _Req, _State) ->
    ok.
4

1 回答 1

0

错误消息表明您的{ok, Req3} = ...行在{. 由于{是该行的第一个重要字符,我们可以合理地假设错误实际上在它之前的行上。

事实上,错误源于这一行:

Body = <<"<h1>This is a response for POST</h1>">>

并且实际上在其他两个 case 子句中都重复了。在每个 case 子句的第一行中,您缺少表达式终止符,. 这些行应该是:

Body = <<"<h1>This is a response for POST</h1>">>,
{ok, Req3} = ...
于 2014-05-21T14:31:10.950 回答