如何在Luminus / Compojure中显示数据之前对其进行预处理?

时间:2016-06-04 04:16:54

标签: clojure compojure luminus

我在Luminus / Compojure项目中有这个:

(defn article-show-single [id]
  (let [a (db/get-single-article {:id id})]
  (layout/render "show.html"
    {:article a}))

现在我想预处理一篇文章的:body。我可以通过:

(str/replace (:body a) #"regex123"
           (fn [[_ var1 var2]]
               (str "new str 123")))
; => new str 123

但是我怎样才能将这两个结合起来,也就是说,我想要更改文章的:body并仍然返回文章。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

作为第一步,我将提取预处理代码作为一个函数,使代码更具可读性:

CREATE TABLE Course_objtab OF Course_objtyp (
  PRIMARY KEY (CourseID, studentID),
  FOREIGN KEY (StudentID) REFERENCES Student_objtab)
  OBJECT IDENTIFIER IS PRIMARY KEY;

然后我会使用update函数通过将提供的函数应用于当前值来更新地图键的值,并在新版本的地图中使用该值:

bar