存储或传递数据库连接的Datomic最佳实践

时间:2014-11-29 05:46:02

标签: database connection datomic

我使用Datomic(第一次)并且享受得非常好。

我有许多从db获取内容的函数,例如user。我认为有两种方法可以做到这一点:为每条路由传递DB URI并每次创建一个新连接,或者存储一个连接并重新使用它。

;; The uri-passing version...
(defn connect [uri] (try (datomic.api/connect uri
(defn get-user [uri user-id]
  (let [db (connect uri)]
    (...)))

或者...

;; The db storage version
(defonce db (atom nil))
(defn get-user [user-id] (...))

我真的不喜欢一直传递uri ...感觉就像是函数调用一样混乱。对此最好的做法是什么?

1 个答案:

答案 0 :(得分:0)

显然,中间件是在环形应用程序中执行此操作的好方法。这是一些例子和信息。

https://gist.github.com/bobby/3150938