【发布时间】:2014-03-05 17:59:21
【问题描述】:
我希望不同的处理程序在会话中设置不同的键而不会相互影响。我在this wiki article 工作,它建议使用assoc。我想我可以使用assoc-in 来更新会话中的路径。
(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,它会打印Session before one {:key-one "one"},同样handler-two 会打印上一个会话值。
通过使用assoc-in 设置会话密钥,我希望设置两个密钥,即{:key-one "one" :key-two "two"}。但似乎整个会话字典都被替换了。
我做错了吗?
【问题讨论】: