我通过 POST 使用发送地图cljs-http
,我想用 Compojure POST 处理程序接收它并将其存储在数据库中。我对在运输途中应该如何处理地图感到完全困惑......有很多选择...... pr-str
,,prn
等等read-string
。在发送方,它似乎cljs-http
可能会将我的地图强制转换为 edn。如果没有工作的 Compojure 处理程序,我无法知道。实际上,老实说,我对 edn 是什么还有些不清楚。我收集的是 Clojure 的数据格式。据我所知,我正在处理的实际上只是将 edn 转换为字符串格式,以便发送和返回。但是,请求上的 :data 值是一个对象,而不是字符串。一个工作示例cljs-http
POST 和允许我使用客户端发送的原始地图的 Compojure POST 处理程序会很棒。我不知道我的:edn-params
目的
(http/post "/test" (:edn-params (prn-str {:hey "there"})))
或者如果我应该使用其他东西。我习惯了 JSON,我想知道我是否应该将数据转换为 JSON 并在接收端返回。我不确定使用 edn 的优势。
在接收方,我有:
(defroutes handler
(GET "/about" [] "<h1>Hello World</h1>")
(POST "/test" req (prn (read (:body req))))
(route/not-found "<h1>Page not found</h1>"))
我知道这可能是错误的......但我想我会分享我在哪里。
更新:经过一番思考,标题应该是“在 Reagent 应用程序和服务器之间发送地图的最佳方式是什么?”。我只需要能够将地图发送到服务器,并向该服务器发出请求并拿回地图。