2016-11-29 3 views
0

ich folgende bin https://ninenines.eu/docs/en/cowboy/2.0/guide/getting_started/init/2 undefined in Cowboy hello_handler

wenn ich

gmake new t=cowboy_http n=hello_handler

laufen schafft dies src/hello_handler

-module(hello_handler). 
-behaviour(cowboy_http_handler). 

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

-record(state, { 
}). 

init(_, Req, _Opts) -> 
    {ok, Req, #state{}}. 

handle(Req, State=#state{}) -> 
    {ok, Req2} = cowboy_req:reply(200, Req), 
    {ok, Req2, State}. 

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

die Anweisungen sagt init/2 zu ändern aber es gibt nur init/3. Ist diese Dokumentation veraltet?

+0

Es sieht aus wie 'erlang.mk' hat eine veraltete. [Link] (https://github.com/ninenines/cowboy/issues/994) – hyun

+0

Vielen Dank! Das funktioniert für mich .. – quantumpotato

Antwort

1

Die Dokumentation, die Sie betrachten, stimmt nicht mit der Version von Cowboy überein, die Sie betrachten. Die Dokumentation ist für Version 2.x, der Handler ist für Version 1.x.

Die Cowboy 1.x-Serie implementiert einen http-Handler mit einem Verhalten. Wenn Sie einen Handler aus einer Vorlage generiert haben, implementiert dieser Handler dieses Verhalten. In Cowboy 2.x muss der Handler jedoch nur init/2 implementieren und muss das Verhalten nicht mehr implementieren.

Wenn Sie Cowboy auschecken, können Sie die Dokumente dafür mit make docs machen. Sie können sie dann lokal in doc durchsuchen. Auf diese Weise haben Sie garantiert Dokumente, die Ihrer Version von Cowboy entsprechen.

+0

Gut, ich werde 'make docs' verwenden, danke! – quantumpotato