Session 为什么我的铃声会话被重置?
我希望不同的处理程序在会话中设置不同的键,而不会相互影响。我的工作地点是,它建议使用Session 为什么我的铃声会话被重置?,session,clojure,ring,Session,Clojure,Ring,我希望不同的处理程序在会话中设置不同的键,而不会相互影响。我的工作地点是,它建议使用assoc。我想我可以在中使用assoc来更新会话中的路径 (defn handler-one [request] (prn "Session before one" (:session request)) (-> (response "ONE") (content-type "text/plain") (#(assoc-in % [:session :k
assoc
。我想我可以在中使用assoc来更新会话中的路径
(defn handler-one
[request]
(prn "Session before one" (:session request))
(-> (response "ONE")
(content-type "text/plain")
(#(assoc-in % [:session :key-one] "one"))))
(defn handler-two
[request]
(prn "Session before two" (:session request))
(-> (response "TWO")
(content-type "text/plain")
(#(assoc-in % [:session :key-two] "two"))))
如果我反复调用handler one
,它会在一个{:key one“one”}
之前打印会话,同样地handler two
会打印之前的会话值
通过在
中使用assoc设置会话密钥,我希望设置两个密钥,即{:key one“one”:key two“two”}
。但整个会话字典似乎都被替换了
我做错了吗 您正在打印请求中的会话,但您正在关联响应中的(不存在)会话,因此您最终得到的会话只有最后添加的属性。您应该将会话从请求中取出,关联到该请求中,然后将新会话作为响应的一部分返回