Я начал развиваться с использованием Clojure рамки LUMINUS с MongoDB (с библиотекой торговца). Было очень сложно понять, как реализовать библиотеку mount
, чтобы начать соединение с db.рамки Luminus Clojure как вызвать MongoDB соединения с креплением
Я понял, что код должен положить handler.clj
init
функция.
Но я не могу понять, как сообщить mount, чтобы начать соединение с базой данных.
Пожалуйста, не могли бы вы дать мне руку?
Здесь забодает мое развитие config.clj
(ns vippro.config
(:require [selmer.parser :as parser]
[clojure.tools.logging :as log]
[vippro.dev-middleware :refer [wrap-dev]]
))
(def defaults
{:init
(fn []
(parser/cache-off!)
(log/info "\n-=[vippro started successfully using the development profile]=-"))
:middleware wrap-dev})
и в handler.clj
«s init
функция
(defn init
"init will be called once when
app is deployed as a servlet on
an app server such as Tomcat
put any initialization code here"
[]
(when-let [config (:log-config env)]
(org.apache.log4j.PropertyConfigurator/configure config))
(doseq [component (:started (mount/start))]
(log/info component "started"))
((:init defaults)))
моя основная проблема заключается в том, как я должен вызвать эту функцию из init
надлежащим образом
(defn connect! []
;; Tries to get the Mongo URI from the environment variable
(reset! db (-> (:database-url env) mg/connect-via-uri :db)))
Пожалуйста, быть более конкретным, если вы предоставите попытку реализации, мы могли бы быть в состоянии сказать вам, где это пошло не так. –
@RicardoAcuna спасибо. Я добавил код, который, как мне кажется, relavent – shan