在Clojure中使用compojure.route/not-found时获取HTTP请求,可以通过以下步骤实现:
[compojure "1.6.2"]
(ns your-namespace
(:require [compojure.route :as route]
[compojure.core :refer [defroutes GET]]
[ring.util.response :as response]))
compojure.route/not-found
函数来捕获未匹配的路由。在该函数中,你可以通过ring.util.response/request
函数获取HTTP请求对象。(defroutes app-routes
(GET "/" [] "Hello World!")
(route/not-found (fn [request]
(let [http-request (response/request request)]
; 在这里可以对http-request进行处理
(response/response "404 Not Found")))))
在上面的代码中,当请求的路由未匹配时,会调用not-found
函数,并将HTTP请求对象作为参数传递给处理函数。你可以在处理函数中对该请求对象进行任何处理。
(def app
(-> app-routes
(route/wrap-routes)
(route/wrap-not-found)))
通过以上步骤,你可以在Clojure中使用compojure.route/not-found时获取HTTP请求。请注意,以上代码仅为示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云