【发布时间】:2016-01-06 04:33:00
【问题描述】:
我开始使用 Clojure luminus 框架 和 mongodb(带有 monger 库)进行开发。
很难理解如何实现mount 库来启动数据库连接。
我发现代码应该放入 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 的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 谢谢。我添加了我认为相关的代码
标签: mongodb clojure ring luminus