1
서로 다른 핸들러가 서로 영향을주지 않고 세션에서 다른 키를 설정하기를 원합니다. 저는 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"}
). 그러나 전체 세션 사전이 대체 된 것처럼 보입니다.
내가 잘못 했나요?