保持所有模型都可以访问全球贩子连接

时间:2012-07-31 09:48:01

标签: clojure noir

在Clojure,Noir和Monger都是新人,我只是面临一个小问题。作为Noir的标准配置,我将模型保存在src / app_name / model_name.clj

我面临的问题是我需要在每个模型中与MongoDB建立相同的连接,因为我不知道如何正确地“共享”连接,如下所示:

(ns app.models.theme
 (:require [monger.collection :as mc]
            [monger.core :as mg]))

(mg/connect!)
(mg/set-db! (mg/get-db "app_development"))

; Do stuff

我如何通过整个应用程序共享此连接?谢谢。

1 个答案:

答案 0 :(得分:2)

如果你总是连接到同一个服务器,那么只需在server.clj(src // server.clj)中添加它

(mg/connect!)

如果您只在该服务器中使用一个数据库,则只需添加:

  

(mg / set-db!(mg / get-db“dbname”))

到同一个文件

否则你可以在例如入口点或代码中的任何地方

(defpage "/dbname/tothis" {:keys [dbname]}

  (mg/with-db (mg-get-db dbname))).....