如何使用 Ring 在请求中输出我的 post 数据?

How do I use Ring to output my post data in a request?

在使用 clojure-ring 时,我试图通过从表单发布数据然后将其打印到浏览器来做一个简单的测试。

(defroutes approutes
  ;posting test
  (POST "/upload" [req]
    (str "the wonderful world of wonka presents " req)))

当我尝试通过 curl 发布数据时,它给了我一个 200 okay 状态代码,但它实际上并没有用参数填充请求的主体。也许我忽略了 Ring 的一些基本知识。

edt: 它的输出是

the wonderful world of wonka presents

但其余的没有出现。

compojure's destructuring 尝试访问您示例中的 query/form 参数 :req,而不是整个请求。你有两种可能:

(POST "..." req ...)

(POST "..." [something :as req] ...)

两者都将请求存储在 req 中,但第二个变体允许您仍然使用解构。