【发布时间】:2018-08-28 17:38:38
【问题描述】:
新手在这里非常喜欢使用 Clojure。所以,我有一个 HTTP 路由:
(POST "/login" request (post-login request))
这里,“request”是一个map,里面有很多http的东西。以及“登录后”功能:
(defn post-login
;; Login into the app
[{{email "email" password "password"} :form-params session :session :as req}]
(let [user (modusers/get-user-by-email-and-password email password)]
;; If authenticated
(if-not (nil? (:user user))
(do
(assoc (response/found "/")
:session (assoc session :identity (:user user)) :flash "Bitte schön!"))
(assoc (response/found "/login") :flash "Etwas stimmt nicht mit deinem Zugriffsprozess"))))
但我不明白“请求”是如何被解构的。现在如何在函数中使用“电子邮件”和“密码”?“:as req”是什么意思?这种“技术”有名字吗?
【问题讨论】:
-
clojure.org/guides/destructuring 涵盖了您在此处提出的问题的 100%。请参阅地图的“关联解构”。同样,您可以在该页面中搜索
:as。 -
...所以,就
:as而言,您可以在destructure parameter of a clojure function while keeping the original value找到答案
标签: clojure destructuring