问题标签 [ring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1872 浏览

clojure - 我们可以将某种规范的 edn 响应用于 ring 吗?

我一直在阅读 edn 规范并希望将其集成到我的应用程序中。但是,我不知道如何在 clojure 和客户端之间传输 edn 请求。我们是否将内容类型的 application/edn 放在响应标头中并仅发送 prn 输出字符串?

0 投票
1 回答
94 浏览

clojure - 不让 Monger 序列化

我是 Clojure 的新手,我遇到了 Monger 的问题。

我正在尝试将 Monger 与 Friend 一起使用。我有这个ns:

当我尝试使用 Monger 将其添加到数据库时

Monger 序列#{:cemerick.friend-demo.users/user}化为"user"有没有办法按原样放置该值,或者有什么方法可以更改"user"#{:cemerick.friend-demo.users/user}

0 投票
2 回答
3072 浏览

clojure - 带有 clojure 和 ring 的静态文件

我正在构建一个测试 clojure/ring 项目来了解它是如何工作的。我创建了一个名为“junkapp”的应用程序,它确实有一个处理程序

还有一个调用 wrap-resource 来获取静态内容

那么在我的 project.clj 中,我引用了 lein-ring 并将 :handler 设置为我的 junkapp.core/app

当我用 lein run 运行它时,一切都按预期工作。对 / 的调用返回“Hello World”,对 /test.html 的调用返回 resources/public/test.html 的内容。

但后来我尝试将它构建成一个战争文件

并将其放在tomcat7 服务器的webapps/ 目录下。现在,当我转到 junkapp 下的任何路径(例如 /junkapp/、/junkapp/foo、/junkapp/test.html)时,它总是返回“Hello World”,我似乎根本无法让它引用静态内容。在谷歌搜索中,我看到人们只是说要使用 compojure.route/resources 但随着我的学习,我希望它像这样工作,然后再添加更多库。这里发生了什么?

0 投票
1 回答
1908 浏览

clojure - java.lang.RuntimeException: java.lang.NoSuchMethodError: 运行 clojure web 应用程序时

我正在尝试运行我编写的一个小型 Clojure Web 应用程序,但我从 lein ring 服务器得到一个异常,它没有给我任何有用的信息。我用谷歌搜索了这个错误并发现了这个讨论,它建议运行lein deps :tree以解决问题,但这已经被贬值了。

完整的堆栈跟踪:

项目.clj:

核心.clj:

有没有关于我可以对此异常做些什么的信息?感谢您的时间和考虑。

0 投票
1 回答
141 浏览

clojure - 自动生成 ID 期间 clojure URL 缩短器中的错误

我在 Clojure Programming 中遇到了一段代码,它有问题。我是 Clojure 的新手,无法弄清楚代码中的错误在哪里。

当我运行 $ CURL -X POST 'localhost:8080/?url= http://www.yahoo.com/ ' 我得到 URL 已被赋予标识符 1 当我重新运行命令时我得到 'URL 已被赋予标识符 2但它应该标记一个错误,说 yahoo.com 已经有标识符 1。

这是我可以看到的错误,它在缩短!功能,但还没有能够纠正它。

谢谢!

0 投票
1 回答
100 浏览

clojure - 设置和更新 Clojure 命名空间标志的惯用方式?

我有一个基于 ring/compojure 的 Web API,我需要能够根据启动标志或将参数传递给请求来选择性地打开和关闭缓存(或任何标志)。

我尝试将标志设置为动态变量:

...但这仅允许我更新绑定块中的标志,这对于包装每个数据获取功能并不理想,并且不允许我在启动时选择性地设置标志

然后我尝试在原子中设置标志,这允许我在启动时设置标志,如果某个参数被传递给请求,则可以轻松更新标志,但更新将更改所有线程的标志和不仅仅是特定请求的标志。

在 Clojure 中做这样的事情最惯用的方法是什么?

0 投票
1 回答
153 浏览

clojure - Compojure Ring 服务器由“lein ring server”生成,行为异常

所以我在编码,我遇到了一个例外。我修复了异常,然后回去检查事情是否正常。我没有看到我的修复程序,而是看到了在引发异常之前生成的网站。就像我之前的代码已经被缓存了,现在它正在被使用。我通过将所有内容注释掉并尝试输入字符串而不是网页来仔细检查这种直觉,但这仍然导致我的网站没有任何变化。所以我继续尝试重新启动服务器。这并没有解决问题。所以我尝试运行 lein clean。这也没有解决问题。这到底是怎么回事,我该如何解决?

我很确定我的代码无关紧要,因为无论我使用什么代码,我都会遇到同样的问题。对于那些想知道初始异常的人来说,函数 clojure.string/replace 已经在 clojure.core/replace 中使用,或者换句话说,我遇到了命名冲突。我通过 (:require [clojure.string :as string]) 解决了这个问题。

0 投票
1 回答
391 浏览

clojure - 在 ring/compojure webapp 中使用 LevelDB

我正在尝试在 ring/compojure 应用程序中设置 LevelDB,并寻找一种惯用的方式来将打开的数据库描述符访问到每个请求中。

例如:

您如何将main-db描述符访问到请求处理程序中?

IE。:

PS:我正在使用 Sedward 的 leveldb-clj 库并将其打包成 clojar:https ://clojars.org/org.clojars.aircart/leveldb-clj

0 投票
1 回答
151 浏览

clojure - 我在 Ring 应用中看到的 #' 是什么?

示例代码:

我不是 Clojure 专家,这让我很#'困惑——那是什么?

0 投票
1 回答
137 浏览

clojure - Line-seq 忽略字符串中的 \n

我对 liberator body-as-string 函数和 line-seq 有疑问。

使用此 curl 命令,函数返回(h1,h2\nh3,h4\nh5,h6)而不是(h1,h2 h3,h4 h5,h6)

编辑 :

我添加 body-as-string 函数:

也许是编码问题?

谢谢 !