我对编程和灵丹妙药极其陌生.因此,我尽可能多地学习.但我遇到了麻烦.我正在寻找如何在另一个模块中使用我的函数的方法.我正在构建web-server,它将键值映射存储在内存中.为了保持地图临时,我决定使用Agent.这是我的代码的一部分:
defmodule Storage do
use Agent
def start_link do
Agent.start_link(fn -> %{} end, name: :tmp_storage)
end
def set(key, value) do
Agent.update(:tmp_storage, fn map -> Map.put_new(map, key, value) end)
end
def get(key) do
Agent.get(:tmp_storage, fn map -> Map.get(map, key) end)
end
end
Run Code Online (Sandbox Code Playgroud)
所以我试图将这些功能放到Web服务器的路由上:
defmodule Storage_router do
use Plug.Router
use Plug.Debugger
require Logger
plug(Plug.Logger, log: :debug)
plug(:match)
plug(:dispatch)
post "/storage/set" do
with {:ok, _} <- Storage.set(key, value) do
send_resp(conn, 200, "getting the value")
else
_ ->
send_resp(conn, 404, "nothing")
end
end
end …
Run Code Online (Sandbox Code Playgroud)