如何在clojure中访问core.cljs中的db.clj方法

时间:2015-12-08 07:36:19

标签: clojure clojurescript om

我正在尝试在clojure中创建一个网络应用。 我使用过clojurescript om并做出反应。 有两个文件core.cljsdb.cljcore.cljs包含login page的ui,db.clj包含所有database connections

现在我正在尝试调用db.clj方法添加用户[用户名密码] core.cljs。

db.clj

   (defn add-user [username,password]
        (sql/with-connection db
          (sql/insert-values :users [:username :password]
                             [username password])))

core.cljs

       (dom/button #js {:ref "submit"
             :onClick (fn[e](add-user usname passwrd))}"submit")

但我无法在core.cljs中调用该方法。 它显示了一些错误消息,如

clojure.lang.ExceptionInfo : failed compiling file:src\login_page\core.cljs
clojure.lang.ExceptionInfo : No such namespace: login_page.db, could not locate login_page/db.cljs, login_page/db.cljc, or Closure namespace "login_page.db"

1 个答案:

答案 0 :(得分:2)

db.clj重命名为db.cljsdb.cljc。这应该让你通过'No such namespace'错误消息。

这是它的基本要点。当然,你必须删除你对clj库的依赖 - 这可能是下面的负面评论的原因。更改代码,以便使用简单的原子作为数据库。这应该让你发展。

您可以等待比这个更好的答案,它将向您展示如何进行客户端和服务器通信设置。但它可能不会发生,因为正如评论中所指出的那样,已经有了这方面的文件,不幸的是,必须做出相当多的选择。另一个不幸的事情是,现在这样做的方式可能不是明年初做到这一点的方法。观看Om-Next空间!

我编译.cljs或.cljc文件时从来没有遇到任何问题。您只需正确设置lein project.clj文件即可。如果您使用Google,会有很多示例,或者您可以查看以下小型Github项目:https://github.com/chrismurrph/passing-time - 无需担心代码,只需查看其project.clj文件即可。