2

在我的项目的所有控制器操作之后,我想向我的 Elasticsearch 发送一些连接信息,例如:控制器操作响应、请求参数和端点。

如果我们需要在操作解决后处理控制器返回的 conn 结构,我们该怎么办?

4

1 回答 1

3

我在我的应用程序中创建了一个插件:

defmodule MyAppWeb.Plugs.RequestLogger do
  @moduledoc false

  alias Plug.Conn

  def init(opts), do: opts

  def call(conn, _opts) do
    IO.puts("Getting conn after all controller actions here " <> Integer.to_string(conn.status))
    conn
  end
end

并将其设置在“MyAppWeb.Router”之后的“MyAppWeb.Endpoint”中:

defmodule MyAppWeb.Endpoint do
  # ...
  plug MyAppWeb.Router
  plug MyAppWeb.Plugs.RequestLogger
end
于 2020-01-07T20:14:44.060 回答