Ошибка Compojure/Ring Routing: неверное количество аргументов

Настройка маршрута, описанная ниже, вызывает ошибку: Wrong number of args (0) passed to: PersistentArrayMap Может кто-нибудь помочь мне понять эту ошибку и как ее устранить?

(defn sign-in [req]
  ({:status 200 :body "hello world" :headers {"content-type" "text/plain"}})) 

(defroutes paths
  (GET "/connect" {} connect-socket)
  (POST "/sign-in" {} sign-in)
  (route/resources "/")
  (route/not-found "Resource not found."))

(def app
  (-> (defaults/wrap-defaults #'paths defaults/api-defaults)
      wrap-json-params))

1 ответ

Исправьте свою функцию входа, развернув карту ответов

(defn sign-in [req]
  {:status 200 :body "hello world" :headers {"content-type" "text/plain"}}) 

проблема в том, что вы помещаете карту в положение функции (первый элемент списка), и для этого требуется аргумент.

(
  {:status 200 :body "hello world" :headers {"content-type" "text/plain"}} ;; function
  ???      ;; argument
 )

в ближайшем будущем, map может действовать как функция с ключом в качестве аргумента и возвращает значение этого ключа, например

({:a 1 :b 2 :c 3} :a)
=> 1
Другие вопросы по тегам