init/2 在牛仔中未定义 hello_handler
init/2 undefined in cowboy hello_handler
我关注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。该文档是否已过时..?
您正在查看的文档与您正在查看的 cowboy 版本不匹配。文档适用于版本 2.x,处理程序适用于版本 1.x.
Cowboy 1.x 系列实现了具有行为的 http 处理程序。当您从模板生成处理程序时,该处理程序会实现该行为。
然而,在 Cowboy 2.x 中,处理程序只需要实现 init/2
,而不再需要实现行为。
当你查看 Cowboy 时,你可以使用 make docs
为它制作文档。然后您可以在 doc
中本地浏览它们。这样,您就可以保证拥有与您的 cowboy 版本相匹配的文档。
我关注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。该文档是否已过时..?
您正在查看的文档与您正在查看的 cowboy 版本不匹配。文档适用于版本 2.x,处理程序适用于版本 1.x.
Cowboy 1.x 系列实现了具有行为的 http 处理程序。当您从模板生成处理程序时,该处理程序会实现该行为。
然而,在 Cowboy 2.x 中,处理程序只需要实现 init/2
,而不再需要实现行为。
当你查看 Cowboy 时,你可以使用 make docs
为它制作文档。然后您可以在 doc
中本地浏览它们。这样,您就可以保证拥有与您的 cowboy 版本相匹配的文档。