Cookies 创建并访问Mochiweb Cookie

Cookies 创建并访问Mochiweb Cookie,cookies,erlang,mochiweb,Cookies,Erlang,Mochiweb,嘿,我正在尝试让我正在制作的网站向用户发送一个cookie,然后显示一个网页 所以我发现这是关于如何制作cookie的唯一真正的教程,但它似乎对我来说是错误的 我的循环看起来像这样(我的make_cookie、get_cookie、render_ok和get_username与他的相同,只是我使用'mename'作为键而不是'username'): 该错误似乎来自render_ok,但对于Erlang mochiweb来说是新的,我不确定如何修复该错误。您已注释掉了render_ok,但此后未编

嘿,我正在尝试让我正在制作的网站向用户发送一个cookie,然后显示一个网页

所以我发现这是关于如何制作cookie的唯一真正的教程,但它似乎对我来说是错误的

我的循环看起来像这样(我的make_cookie、get_cookie、render_ok和get_username与他的相同,只是我使用'mename'作为键而不是'username'):


该错误似乎来自render_ok,但对于Erlang mochiweb来说是新的,我不确定如何修复该错误。

您已注释掉了
render_ok
,但此后未编译该文件。错误消息表明,它仍然调用
问候语\u dtl

我假设您正在使用erlydtl,因为错误在
问候语\u dtl
中。
render
函数中的错误通常意味着您拼错了某些属性名称。检查模板的位置,以及它是否有类似
{{{something.username}}
的内容。将其注释掉或更改为
mename
(任何有意义的)

loop(Req, DocRoot) ->
"/" ++ Path = Req:get(path),
try
    case dispatch(Req, valid_urls:urls()) of
        none -> 
            case filelib:is_file(filename:join([DocRoot, Path])) of
                true -> 
        %% If there's a static file, serve it
                    Req:serve_file(Path, DocRoot);
                false ->
        %% Otherwise the page is not found
                    case Req:get(method) of
                        Method when Method =:= 'GET'; Method =:= 'HEAD' ->
                            case Path of
                                "response" ->
                                    QueryStringData = Req:parse_qs(),

                                    Username = get_username(Req, QueryStringData),
                                    Cookie = make_cookie(Username),

                                    FindCookie = get_cookie_value(Req,"mename","Not Found."),
                                    % render_ok(Req, [Cookie], greeting_dtl, [{username, Username}]),

                                    Req:respond({200, [{"Content-Type", "text/html"}],
                                                "<html><p>Webpage</p></hmtl>"});
                                _ ->
                                    Req:not_found()
                            end
                    end
            end;
        Response -> 
            Response
    end
catch
Type:What ->
        Report = ["web request failed",
                  {path, Path},
                  {type, Type}, {what, What},
                  {trace, erlang:get_stacktrace()}],
        error_logger:error_report(Report),
        %% NOTE: mustache templates need \ because they are not awesome.
        Req:respond({500, [{"Content-Type", "text/plain"}],
                     "request failed, sorry\n"})
end.
[error] "web request failed", path: "response", type: error, what: undef, trace: [{greeting_dtl,render,[[{username,"GET"}]],[]}