如何在clojure中基于html表单post执行数据库条目?
我在使用Compojure时遇到了宏“defroutes”的问题。我的错误是由宏未计算函数引起的。 下面是我的路线和我正在尝试做的一个例子。为了强调,增加了星星如何在clojure中基于html表单post执行数据库条目?,clojure,macros,compojure,Clojure,Macros,Compojure,我在使用Compojure时遇到了宏“defroutes”的问题。我的错误是由宏未计算函数引起的。 下面是我的路线和我正在尝试做的一个例子。为了强调,增加了星星 (defroutes simple-routes (GET "/", [], form) ***(POST "/", [count, day], (do (create-entry count day) "Success!")*** (GET "/attendance/", [], response) (resourc
(defroutes simple-routes
(GET "/", [], form)
***(POST "/", [count, day], (do (create-entry count day) "Success!")***
(GET "/attendance/", [], response)
(resources "/")
(not-found "404")
create entry
按此方式计算时功能正确(create entry 1 2)
将两个整数输入数据库。但是,当放置在上述route宏中时,它不会运行。如何从html表单帖子中获取作为(创建条目计数日)
运行的两个整数值?(是的,我知道这段代码不是独立的,但上面的代码是唯一有问题的代码,因为其他所有代码都运行良好。)当然有一个更简洁的方法。但是,将星号行更改为以下内容并添加函数会起作用:
(POST "/", [], entry)
条目
将被传递一个表单post的映射。以下是一个非常糟糕的函数,用于从所述映射中获取值并将其传递给创建条目
:
(defn entry [request]
(apply create-entry (reduce #(conj %1 (Integer/parseInt (get (get request :params) %2))) [] '(:count :day))))
这是一个补丁,直到长期使用它的人能够给出更好的答案。当然有一个更简洁的方法。但是,将星号行更改为以下内容并添加函数会起作用:
(POST "/", [], entry)
条目
将被传递一个表单post的映射。以下是一个非常糟糕的函数,用于从所述映射中获取值并将其传递给创建条目
:
(defn entry [request]
(apply create-entry (reduce #(conj %1 (Integer/parseInt (get (get request :params) %2))) [] '(:count :day))))
这是一个补丁,直到长期使用它的人能够给出更好的答案。您可以将的Compojure绑定与以下内容一起使用:
您可以使用的Compojure绑定以及: