どのようにリングハンドラに状態を注入するのが最も便利です(グローバル変数を使わないで)?ここで状態をパラメータとしてリングハンドラに渡しますか?
は一例です:
(defroutes main-routes
(GET "/api/fu" [] (rest-of-the-app the-state)))
(def app
(-> (handler/api main-routes)))
私はmain-routes
ためcompojureハンドラにthe-state
を取得したいと思います。のさまざまなコンポーネントへの関数のパラメータとして、非リング私は主な機能の状態を作成し、それを注入開始するアプリケーション、またはその一部で
(defn create-app-state []
{:db (connect-to-db)
:log (create-log)})
:状態はで作成したマップのようなものかもしれませんアプリケーション。
グローバルなvarを使用しないで、リングの:init
機能で同様のことを行うことはできますか?
セッションごとの状態またはグローバルな状態をお探しですか? – astine
グローバル - :initと同じ寿命:破壊 – 4ZM