检查map中是否存在URL参数

时间:2014-05-10 04:11:58

标签: clojure compojure

(defroutes my-routes
  (GET "/:id" [id] (html/display-thing id)))

(def my-map
  {:id 1 :title "One"
   :id 2 :title "Two"})

有没有一种很好的方法来检查id中是否存在url参数my-map,否则继续检查其他路由是否匹配?我知道你可以用正则表达式做类似的事情:["/:id", :id #"[0-9]+"]并且怀疑它可能插入一个任意的谓词函数。

1 个答案:

答案 0 :(得分:1)

实际上并不是在REPL中,但如果在my-map中没有id元素,那么从html / display-thing返回nil是不是很简单?看一下(源GET),看看如果方法或URL不匹配,宏如何将控制传递给下一个路由。