小编Pav*_*sov的帖子

Elixir,使用另一个模块的功能

我对编程和灵丹妙药极其陌生.因此,我尽可能多地学习.但我遇到了麻烦.我正在寻找如何在另一个模块中使用我的函数的方法.我正在构建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)

function elixir

3
推荐指数
1
解决办法
424
查看次数

标签 统计

elixir ×1

function ×1