Это Compojure GET маршрут с жестко заданным идентификатором ...compojure destructuring делает целые числа ... не целыми?
;posts
(GET "/post:id" [id :as request]
;(str "the post id is... " id)
(def email (get-in request [:session :ze-auth-email]))
(vb/post-page-draw email 17592186045616))
Работы^
Однако, с символическим идентификатором (на последней строке) ...
;posts
(GET "/post:id" [id :as request]
;(str "the post id is... " id)
(def email (get-in request [:session :ze-auth-email]))
(vb/post-page-draw email id)
где url is:
localhost:4000/post17592186045616 ;;i.e. the number from above
(изменить: нет двоеточия между словами post и id)
Возвращает huuuge трассировки стека, в основном нарушения на
java.lang.Exception
processing rule: (q__7967 ?title ?content ?tags ?eid),
message: processing clause: [?eid post/title ?title],
message: Cannot resolve key: 17592186045616
Итак, я был в состоянии изолировать его compojure просто не уничтожение того, любя число я передаю ... как я могу получить мой (vb/post-page-draw email id) для работы с параметрами, переданными через URL-адрес?
'id' возвращается в виде строки, вам нужно, чтобы преобразовать его в ряд (с помощью' Long/parseString', например), и вы не должны гнездо 'def', используйте' пусть вместо этого. 'def' является глобальным, а не локальным. – cgrand
cgrand ты гений. Благодарю вас любезно! – sova