我使用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 ...感觉就像是函数调用一样混乱。对此最好的做法是什么?