2016-11-29 1 views
0

Je suivais https://ninenines.eu/docs/en/cowboy/2.0/guide/getting_started/init/2 non définie dans cow-boy hello_handler

quand je lance

gmake new t=cowboy_http n=hello_handler

cela crée 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. 

les instructions dit de modifier init/2 mais il n'y a que init/3. Cette documentation est-elle dépassée?

+0

Il semble que 'erlang.mk' a un obsolète. [Link] (https://github.com/ninenines/cowboy/issues/994) – hyun

+0

Merci! Ça marche pour moi .. – quantumpotato

Répondre

1

La documentation que vous regardez ne correspond pas à la version de cowboy que vous regardez. Les documents sont pour la version 2.x, le gestionnaire est pour la version 1.x.

La série Cowboy 1.x implémente un gestionnaire http avec un comportement. Lorsque vous avez généré un gestionnaire à partir d'un modèle, ce gestionnaire implémente ce comportement. Cependant, dans Cowboy 2.x, le gestionnaire doit seulement implémenter init/2 et n'a plus besoin d'implémenter le comportement. Lorsque vous consultez Cowboy, vous pouvez faire les documents pour cela avec make docs

Vous pouvez ensuite les parcourir localement dans doc. De cette façon, vous êtes sûr d'avoir des documents qui correspondent à votre version de cow-boy.

+0

Super, je vais utiliser 'make docs', merci! – quantumpotato