我在Elixir应用程序中使用elli https://github.com/knutin/elli。
下面提供了示例代码。这是非常基本的,每次运行时,我只会收到“内部服务器错误”。我不确定自己在做什么错。有人可以帮忙吗?
defmodule Client.TestHttp do
@behaviour :elli_handler
def handle(_Req,_Args) do
handle(:elli_request.method(Req), :elli_request.path(Req),Args)
end
def handle_event(_,_,_)do
:ok
end
def handle(:GET,[],_)do
{:ok, [], "OkGet"}
end
end
Run Code Online (Sandbox Code Playgroud)
这就是我执行的方式
{:ok,pid}=:elli.start_link [callback: Client.TestHttp, port: 2020]
Run Code Online (Sandbox Code Playgroud)
似乎您尚未完全转换示例中的Erlang代码,并且仍在使用以大写字母开头的变量。
将句柄更改为:
def handle(req, args) do
handle(:elli_request.method(req), :elli_request.path(req), args)
end
Run Code Online (Sandbox Code Playgroud)
注意变量名称的不同。在Elixir中,变量是用编写的snake_case,模块是中的CamelCase。在匹配中使用和下划线(_)_var表示变量未使用。
您的代码实际上是扩大Req和Args对由于药剂是原子的模块名称的原子:
Req == :'Elixir.Req' # true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |