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

How to access db.clj methods in core.cljs in clojure

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

现在我正在尝试调用 db.clj 方法 add-user[username password] 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"

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

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

你可以等待比这个更好的答案,它会告诉你如何获得客户端和服务器通信设置。但它可能不会出现,因为正如评论中所指出的那样,已经有这方面的文档,不幸的是,必须做出很多选择。另一件不幸的事情是,现在的方法可能不是明年年初的方法。观看 Om-Next space!

我在编译 .cljs 或 .cljc 文件时从未遇到过任何问题。您只需正确设置您的 lein project.clj 文件。如果你Google周围会有很多例子,或者你可以看看下面的小Github项目:https://github.com/chrismurrph/passing-time - 不用担心代码,看看它project.clj 文件。