首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决clojure muuntaja中间件未拾取的body-params值问题

如何解决clojure muuntaja中间件未拾取的body-params值问题
EN

Stack Overflow用户
提问于 2022-11-22 02:44:03
回答 1查看 25关注 0票数 0

我试图用以下代码来修改这里的https://github.com/danownsthisspace/shorturl/blob/main/src/shorturl/core.clj代码:

代码语言:javascript
复制
(ns todo.core
  (:require [clojure.pprint :as pprint]
            [muuntaja.core :as m]
            [reitit.ring :as ring]
            [reitit.ring.middleware.muuntaja :as muuntaja]
            [ring.adapter.jetty :as ring-jetty]
            [ring.util.response :as r]
            [todo.db :as db]))

(defn todo-items-save [req]
  (clojure.pprint/pprint req)
  (let [title (get-in req [:body-params :title])
        content (get-in req [:body-params :content])]
    (r/response (str "foooo" title))))
(def app
  (ring/ring-handler
   (ring/router
    [["/"
      ["" {:handler (fn [req] {:body "hello" :status 200})}]]
     ["/api/todo" {:post {:handler todo-items-save}
                   :get (fn [req]
                          (let [todos db/get-todos]
                            (r/response todos)))}]
     {:data {:muuntaja m/instance :middleware [muuntaja/format-middleware]}}])))

(defn start []
  (ring-jetty/run-jetty #'app {:port 3002 :join? false}))
(def server (start))

(.stop server)

但我看到身体参数的值是空的。我想知道为什么当我向body {"content":"only a test", "title":"second"}发出一个post请求时。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 04:37:29

问题是,muuntaja配置是作为路由的一部分传递的,而不是传递给ring/router的参数。

代码语言:javascript
复制
(def app
  (ring/ring-handler
   (ring/router
    [["/"
      ["" {:handler (fn [req] {:body "hello" :status 200})}]]
     ["/api/todo" {:post {:handler todo-items-save}
                   :get (fn [req]
                          (let [todos db/get-todos]
                            (r/response todos)))}]]
    ; XXX this must be the second argument to `ring/router`
    {:data {:muuntaja m/instance
            :middleware [muuntaja/format-middleware]}})))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74526960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档