我正在尝试在clojure
中创建一个网络应用。
我使用过clojurescript om
并做出反应。
有两个文件core.cljs
和db.clj
。
core.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"
答案 0 :(得分:2)
将db.clj
重命名为db.cljs
或db.cljc
。这应该让你通过'No such namespace'错误消息。
这是它的基本要点。当然,你必须删除你对clj库的依赖 - 这可能是下面的负面评论的原因。更改代码,以便使用简单的原子作为数据库。这应该让你发展。
您可以等待比这个更好的答案,它将向您展示如何进行客户端和服务器通信设置。但它可能不会发生,因为正如评论中所指出的那样,已经有了这方面的文件,不幸的是,必须做出相当多的选择。另一个不幸的事情是,现在这样做的方式可能不是明年初做到这一点的方法。观看Om-Next空间!
我编译.cljs或.cljc文件时从来没有遇到任何问题。您只需正确设置lein project.clj文件即可。如果您使用Google,会有很多示例,或者您可以查看以下小型Github项目:https://github.com/chrismurrph/passing-time - 无需担心代码,只需查看其project.clj文件即可。