2015-04-12 57 views
0

什麼神奇的是從https://github.com/weavejester/compojure/wiki/Destructuring-Syntax如何(GET 「/」 請求(STR請求))中的Compojure

發生此代碼,我想工作(GET 「/」 請求 (STR要求))

我希望它看起來像

(GET 「/」[要求] (STR要求))

具體來說,請求如何綁定到第二個參數?

是總是難免的第二個參數的要求?

我們與衆不同的請求VS [要求]

我已經改變了我的代碼,看看在這些場景中發生了什麼,只是想了解原因,並確保我不作以及關於第二ARG錯誤的假設被綁定到請求。

由於 -jv

回答

2

請求地圖總是勢必傳遞給路由宏第二個參數。如果綁定它作爲地圖,將通過普通的Clojure Map binding destructoring.如果你綁定它作爲一個載體,Compojures宏看起來符號作爲了同樣名爲鍵在:params地圖請求地圖destructored。後者是Compojure特有的,並在您提供的問題鏈接中進行了解釋。

的結合通過傳遞到它的與在範圍所需的查找請求處理器功能的源代碼的GET宏變換形式發生。

第一個例子結合request到整個請求地圖。

第二個示例將request綁定到請求映射的密鑰:params的密鑰:request的值。

+0

感謝萊昂這個偉大的答案! – javazquez