This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-10-29
Channels
- # architecture (3)
- # aws-lambda (1)
- # babashka (7)
- # beginners (60)
- # calva (33)
- # chlorine-clover (8)
- # cider (24)
- # circleci (4)
- # clj-kondo (13)
- # cljs-dev (1)
- # cljsrn (12)
- # clojure (76)
- # clojure-australia (6)
- # clojure-europe (100)
- # clojure-france (1)
- # clojure-nl (13)
- # clojure-uk (16)
- # clojurescript (49)
- # conjure (1)
- # cryogen (8)
- # datomic (43)
- # dirac (3)
- # etaoin (1)
- # exercism (4)
- # fulcro (32)
- # jobs (2)
- # kaocha (4)
- # nginx (1)
- # off-topic (106)
- # pathom (8)
- # reagent (5)
- # reitit (5)
- # sci (52)
- # shadow-cljs (37)
- # tools-deps (30)
- # tree-sitter (18)
- # xtdb (18)
hello! i am using reitit and my router data has the following middlewares:
[reitit.swagger/swagger-feature
reitit.ring.middleware.parameters/parameters-middleware
reitit.ring.middleware.multipart/multipart-middleware
ring.middleware.keyword-params/wrap-keyword-params
reitit.ring.middleware.muuntaja/format-negotiate-middleware
reitit.ring.middleware.muuntaja/format-response-middleware
exception-middleware
reitit.ring.middleware.muuntaja/format-request-middleware
reitit.ring.coercion/coerce-response-middleware
reitit.ring.coercion/coerce-request-middleware
deps-injection-middleware]
questions that i have:
• in examples that i saw, multipart-middleware is put at the end of the list; shouldn’t it right after parameters-middleware? is it not desirable that coercion happens to multipart parameters? for example, in my case one of my routes declares a parameter as :multipart [:map [:combat-log-file reitit.ring.malli/temp-file-part]]
.
• if i am not mistaken, ring puts all parameters under :param
but when i use this middleware stack, they end up under :parameters
and :params
stays empty. is that expected? when using reitit, should i always retrieve parameters from :parameters
?
reitit does not touch the original parameters. Muktipart-params are under :mulipart-params
I recall. Reitit writes the coerced parameters under :parameters
so one can access both raw and coerced
Any clue why if I just call my db/create-message! it works, but if I try to access it from a route / <input> form then Postgres tells me I don't have "hstore extension". How can I just see whats going on? Is there an equivelent for print-debugging for request responses? It feels entirely opaque ;_; I know what I want to say and I know how I expect it to recieve it I justg dont know why it wont
(defn save-message [{:keys [params]}]
(db/create-message!
params))
(db/create-message! {:content "hello world"})
(defn home-routes []
[""
{:middleware [middleware/wrap-csrf
middleware/wrap-formats]}
["/" {:get home-page}]
["/about" {:get about-page}]
["/chat"
{:get chat-page :post save-message}]])