2016-11-29 55 views
0

我下面https://ninenines.eu/docs/en/cowboy/2.0/guide/getting_started/的init/2牛仔hello_handler不確定

當我運行

gmake new t=cowboy_http n=hello_handler

這將創建的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. 

指示說要修改的init/2但只有init/3。這份文件是否過時..?

+0

它看起來像'erlang.mk'有一個過時的。[鏈接](https://github.com/ninenines/cowboy/issues/994) – hyun

+0

謝謝!這對我有用.. – quantumpotato

回答

1

您正在查看的文檔與您正在查看的牛仔版本不匹配。該文檔適用於2.x版,處理程序適用於1.x版。

Cowboy 1.x系列實現了一個具有行爲的http處理程序。當您從模板生成處理程序時,該處理程序將實現該行爲。

然而,在牛仔2.x中,處理程序只需要實現init/2,並不需要再執行行爲。

當你檢查出牛仔,你可以用make docs使文檔吧。然後你可以在doc本地瀏覽它們。這樣,你就可以保證有與你的牛仔版本相匹配的文檔。

+0

太棒了,我會用'make docs',謝謝! – quantumpotato