我正在关注https://ninenines.eu/docs/en/cowboy/2.0/guide/getting_started/
当我跑
时 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 :(得分:2)
您正在查看的文档与您正在查看的牛仔版本不符。文档适用于版本2.x,处理程序适用于版本1.x。
Cowboy 1.x系列实现了一个带有行为的http处理程序。当您从模板生成处理程序时,该处理程序会实现该行为。
但是,在Cowboy 2.x中,处理程序只需要实现init/2
,并且不再需要实现该行为。
当您查看牛仔时,您可以使用make docs
为其制作文档。然后,您可以在doc
中本地浏览它们。这样,您就可以获得与您的牛仔版本相匹配的文档。