Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 路由已绑定时的compojure get请求_Clojure_Compojure_Luminus - Fatal编程技术网

Clojure 路由已绑定时的compojure get请求

Clojure 路由已绑定时的compojure get请求,clojure,compojure,luminus,Clojure,Compojure,Luminus,我习惯于冷静地定义我的路线,如下所示: (获取“/home”[req](主页请求)) 然后我可以在我的处理程序中使用整个请求对象 但现在我想使用绑定路由,比如: (GET”/details/:id“[id](详细信息页面id)) 在本例中,似乎无法同时获取请求和绑定参数。我试过: (GET”/details/:id“[id req](详细信息页面id req)) 但req为零 有没有办法通过绑定在路由上获取请求 我需要绑定,因此我不必执行以下操作: (获取“/details”[req](详细信息

我习惯于冷静地定义我的路线,如下所示:

(获取“/home”[req](主页请求))

然后我可以在我的处理程序中使用整个请求对象

但现在我想使用绑定路由,比如:

(GET”/details/:id“[id](详细信息页面id))

在本例中,似乎无法同时获取请求和绑定参数。我试过:

(GET”/details/:id“[id req](详细信息页面id req))

但req为零

有没有办法通过绑定在路由上获取请求

我需要绑定,因此我不必执行以下操作:

(获取“/details”[req](详细信息页面请求))
然后拥有

我需要请求来访问会话和请求头

有什么建议吗


提前感谢。

Compojure的绑定向量分解针对参数进行了优化,但不是很灵活,但幸运的是,对于更复杂的情况,您可以使用基于普通映射的请求分解:

(GET "/details/:id" {:keys [id] :params :as req} (details-page id req))

应该有用。

嗯。。。这并不完美,但我会:

(获取“/details/:id”请求(详细信息页(->req:params:id)请求))

这段代码很有效,解决了我的问题,但我喜欢更简单的(干式)。

根据,您应该能够通过向绑定向量添加
:as req
req
绑定到整个请求:


(获取“/details/:id”[id:as-req](详细信息页面id-req))

这不是有效的映射分解。你忘了戴牙套了吗?很有魅力!