背景
我有一个Plug.Router
接收一些选项的应用程序。我需要通过这些选项将这些选项传递给其他插件,forward
但我不知道该怎么做。
代码
这是主路由器。它接收请求并决定将它们转发到哪里。
defmodule MyApp.Web.Router do
use Plug.Router
plug(:match)
plug(:dispatch)
#Here I check that I get options!
def init(father_opts), do: IO.puts("#{__MODULE__} => #{inspect father_opts}")
forward "/api/v1", to: MyApp.Web.Route.API.V1, init_opts: father_opts??
end
正如您可能猜到的那样,这是行不通的。我希望我的forward
呼叫访问father_opts
此路由器正在接收,但我无法访问它们。
起初,我想到了以下代码片段:
def init(opts), do: opts
def call(conn, father_opts) do
forward "/api/v1", to: MyApp.Web.Route.API.V1, init_opts: father_opts
end
但这不起作用,因为我不能将 aforward
放入call
.
那么我如何使用 实现我的目标forward
?