18

我无法理解 clojure 的 Noir 库的意义。它似乎是在 compojure 之上编写的一个框架,将 defroute 重命名为 defpage 并称之为一天。显然是不公平的简化,但 Noir 究竟带来了什么?为什么我要使用 Noir 而不是普通的 compojure+hiccup?

编辑/更新:Noir 已被弃用,有趣的写在这里:http ://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/ 。

4

4 回答 4

17

来自Noir 的作者本人

Noir 并不是真正的 [compojure and hiccup] 的替代品,更多的是对它们的抽象。它诞生于看到一个真正的 web 应用程序是如何演变的,以及在我构建http://www.typewire.io时 ring/compojure/hiccup 堆栈中缺少什么。此外,正如我在其他评论之一中提到的,我希望它将作为在 Clojure 中开始 Web 开发的单一“包”,而不必尝试从现有的部分拼凑起来。通过控制这一切,我可以创建一个更有凝聚力和定义明确的故事来帮助人们开始。我还可以分享我在 Clojure 中维护网站方面所学到的知识,并希望鼓励那些避免我陷入某些坑的模式。

(强调我的)

于 2012-03-30T21:16:27.333 回答
17

Noir,该框架已被Noir 维护者本人弃用。

它建议使用Compojurelib-noir

对于新网站,请使用 Compojure 和 lib-noir。这几乎就像 Noir 本身所包含的电池一样!你只需要学习如何使用 Compojure 编写路由。它很简单,就像在 Noir 中一样简洁。您不必使用 ring-jetty-adapter 之类的东西,只需使用 lein-ring 插件来启动您的服务器。此外,如果您在默认情况下利用了 Noir,包括打嗝,那么您现在必须明确依赖它。没什么大不了的,对吧?对!

于 2012-12-14T10:43:55.727 回答
15

Compojure 是一个小型框架,可生成 Ring 请求/响应处理程序,其中处理程序是根据您定义的路由选择的。

Noir 增加了会话处理、cookie、模板和部分功能,一种更简单的生成响应的方法、表单验证、路由过滤器、加密密码、JSON(反)序列化和自定义状态页面。换句话说,Noir 将 Compojure、Hiccup 和一堆其他聪明的东西组合在一个包中。

于 2012-03-30T21:17:34.467 回答
0

您可以随时在 webnoir.org 网站上查看API 。除此之外还有很多附加功能defpage

于 2012-03-30T21:19:34.043 回答