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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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获取POST请求的所有参数_Clojure_Compojure_Ring - Fatal编程技术网

Clojure 如何使用Compojure获取POST请求的所有参数

Clojure 如何使用Compojure获取POST请求的所有参数,clojure,compojure,ring,Clojure,Compojure,Ring,根据,我可以很容易地获得如下单个参数: (POST "/my-app" [param1 param2] (str "<h1>Hello " param1 " and " param2 "</h1>")) (发布“/我的应用”[param1 param2] (str“Hello”param1和“param2”)) 如何获得所有参数,而不仅仅是单个参数?我只是猜测将¶ms放在向量中,这样做有效: (POST "/my-app" [& params]

根据,我可以很容易地获得如下单个参数:

(POST "/my-app" [param1 param2]
  (str "<h1>Hello " param1 " and " param2 "</h1>"))
(发布“/我的应用”[param1 param2]
(str“Hello”param1和“param2”))

如何获得所有参数,而不仅仅是单个参数?

我只是猜测将
¶ms
放在向量中,这样做有效:

(POST "/my-app" [& params]
  (str "<h1>Hello " params "</h1>"))
(发布“/我的应用”[¶ms]
(str“Hello”params“”)

compojure处理程序接收整个请求映射作为其参数,因此处理程序还可以访问所有参数。例如,要查看整个请求,请执行以下操作:

(POST "/" request
    (str request))
(POST "/" [param1 param2 :as request]
        (str (:form-params request)))
或者,要提取所有表单参数:

(POST "/" request
    (str (:form-params request)))
(POST "/" [param1 param2 & more-params]
        (str more-params))
问题中使用的语法是特定于compojure的,它允许从请求中提取单个参数。这类似于clojure常用的解构语法,并且,与常用的解构一样,compjure的解构还允许混合解构并仍然获得整个请求:

(POST "/" request
    (str request))
(POST "/" [param1 param2 :as request]
        (str (:form-params request)))
或者,提取命名参数和所有“附加”参数:

(POST "/" request
    (str (:form-params request)))
(POST "/" [param1 param2 & more-params]
        (str more-params))

类似于此的内容将返回所有参数:

(POST "/test" {params :params} 
    (str "POST params=" params))
使用此符号访问特定参数:

(println (params :Nom))