在我的项目的所有控制器操作之后,我想向我的 Elasticsearch 发送一些连接信息,例如:控制器操作响应、请求参数和端点。
如果我们需要在操作解决后处理控制器返回的 conn 结构,我们该怎么办?
在我的项目的所有控制器操作之后,我想向我的 Elasticsearch 发送一些连接信息,例如:控制器操作响应、请求参数和端点。
如果我们需要在操作解决后处理控制器返回的 conn 结构,我们该怎么办?
我在我的应用程序中创建了一个插件:
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