我正在将几个月前制作的旧 Web 应用程序从 Noir 转换为 Compojure,并且我正在使用 Lib-Noir 插件。看来会话/放置!要么以某种我不理解的方式进行了更改,要么出于某种原因而出现故障。
在这里,我可以看到4Clojure似乎可以毫无问题地使用它:参见第 51 行。我还发现这个线程涵盖了相同的问题,但似乎没有令人满意的回应。
这应该有效(黑色):
user=> (require '[noir.session :as sesh])
nil
user=> (sesh/put! :user "me")
ClassCastException clojure.lang.Var$Unbound cannot be cast to clojure.lang.Atom
clojure.core/swap! (core.clj:2162)
以上是我在网页上查看的相同错误。基本上我被卡住了。
编辑以添加
似乎我对命令行部分造成了一些混淆:(put!)在程序中也不起作用。没什么可写的,除了它是 (shesh/put! :uname user) 并且看起来 :uname 不起作用。当我使用与以前相同的工具时,我很困惑为什么它以前会起作用而不是现在起作用。这是对我大约 6 个月前建立的网站的重写。我只是把它从 Noir 移到 Compojure。据我所知,lib-noir 会话与 Noir 中的会话基本相同。
另一个编辑
我把代码放在github上。这不是完成的项目,但希望有人能破译这里发生的事情:https ://github.com/dt1/SoloResume