を作成し、私は私自身のプラグモジュールがあります。、ほぼ正確に同じ2つのプラグが、わずかに異なる
defmodule Module1 do
def init(opts) do
opts
end
def call(conn, _opts) do
# if some_condition1
# something
end
# other stuff
end
をそしてrouter.ex
今pipeline :pipeline1 do
plug(Module1)
end
scope "/scope", MyApp, as: :scope1 do
pipe_through([:browser, :pipeline1])
# .......
で、私は第2のパイプラインやスコープを作成したいです同じモジュールModule1]を使用すると:私は第二のモジュールを作成した場合
pipeline :pipeline2 do
plug(Module1)
end
scope "/scope2", MyApp, as: :scope2 do
pipe_through([:browser, :pipeline2])
# .......
しかし、違いはこれだけでは次のようになります。
def call(conn, _opts) do
# if some_condition1 and some_condition2
# something
end
つまり、私は「some_condition2」を追加しただけで、それ以外は同じままです。
どうすればいいですか?まったく同じモジュールModule2をModule1と同じように作成し、「呼び出し」をsligtlyに変更する必要がありますか?コードの重複が発生します。