2015-04-12 55 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