问题标签 [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.
clojure - 以编程方式发布到组合 URL
有没有办法以编程方式访问路由(无需通过 http 调用)。
例如: (defroutes main-routes (POST "/query" "OK..."))
我可以调用 defroutes 宏生成的“查询”函数吗?
jar - 如何使用环服务器构建 clojure 应用程序
我得到了带有环库的 clojure 项目。这是 project.clj:
在开发环境中,我使用 2 个命令运行它: lein run server lein ring server 并且它可以工作。
对于生产环境,我想最小化依赖关系并将其构建到独立的 jar 中:
如何构建它并从一个 jar 文件运行两台服务器?
clojure - Compojure 应用程序无法与 with-redefs 配合使用
我正在编写一个 Compojure 应用程序并使用clj-webdriver
它来进行图形测试。我试图用来with-redefs
模拟从持久性中提取数据以仅返回预设值的函数,但它忽略了我的函数覆盖。我知道with-redefs
在 vars 方面有效,但它仍然不起作用:
project.clj 相关部分:
处理程序.clj:
日志控制器.clj:
持久性.clj
最后,我的图形测试 - 它试图覆盖mikes-log
并失败:
Whereone-week-snippet
是一个返回一些样本数据的函数。(defn start-server [] (run-jetty (var app) {:port 3000 :join?false}))
clojure - 为什么 ring 在此响应中给我错误?
下面是我的应用程序 -
我在这条路线上遇到错误 -
如果我直接评估上述路线,它可以正常工作并返回 html 文件 -
如果我也将路由更改为直接调用模板函数,那么它也可以工作 -
任何想法出了什么问题?
clojure - ring 在哪里获取表单的 wrap-params 信息?
我正在尝试更深入地研究 ring 并使用以下代码来查看请求映射中发生了什么:
当我想查看get
请求图上的查询数据时,它就在那里。假设我在http://localhost:8099/api/tasks/remove?hello=3
浏览器中输入,响应看起来像这样:
您可以看到“hello=3”在查询字符串中。
但是对于post
,响应有 :content-type "application/x-www-form-urlencoded"
,整个响应看起来像下面这个例子,我没有看到任何表单参数:
我的问题分为两部分:
- 提交表单时 ring 或 jetty 到底在做什么?
- 如果我正在尝试编写自己的
handler
代码来处理表单数据,那么我如何访问表单查询参数的简化代码框架是什么?
我已经将这个函数的“魔力”隔离在params.clj
:
特别是这一行:
(parse-params (slurp body :encoding encoding) encoding)
但我不确定它在做什么。
clojure - 如何停止使用 ring.util.serve 启动的环服务器
我正在使用 repl 中启动我的服务器
一旦开始使用它,我如何停止服务器。
谢谢,穆尔塔萨
java - 如果 start() 出现异常,则终止 Jetty 服务器线程池
我正在 Clojure 中编写一个嵌入式 Jetty 应用程序,并将以下内容作为主要命名空间:
这工作正常 - 我希望能够通过 REPL 启动和停止,以及从运行 JAR 的控制台启动和启动(尽管如果有更好的 Clojure-Ring-Jetty 程序的启动/停止模式,我很想知道)。问题是如果我跑
或者
并且 jetty/run-jetty 抛出了一个异常(它包含了一个 Server.start() 调用)——例如,在我的 MacBook Pro 上,如果我尝试在端口 80 上启动 Jetty 服务器,它会出错——Clojure 程序不会不要退出。但是,异常是在线程“main”中。那么程序为什么不退出呢?我唯一能想到的是 Jetty 有线程浮动。但是 start() 失败了!!!那么这些线程(池)在做什么?
这是 Java 的东西、Clojure 的东西、Leiningen 的东西、Jetty 的东西还是 Ring 的东西?
编辑:
这是堆栈跟踪:
clojure - 如何在不重新启动的情况下使用 enlive 时重新加载模板
我正在使用 enlive 进行 Web 开发。我使用 repl 启动我的环服务器(serve my-app/handler)
但是,当我对我的任何 html 模板进行更改时,我必须重新启动我的 repl 才能显示更改。如何在不重新启动 repl 的情况下重新加载我的标记?
谢谢,穆尔塔萨
clojure - 如何使用 jetty/ring 向 ipad 提供视频文件
我已经建立了一个带有文件服务器的简单环服务器
我有test.mp4
和video.html
在resources/public
目录中。
video.html
引用 mp4 文件:
http://server-ip-address:8890/video.html
当我在 safari、firefox 中打开时,它工作正常
但是,当我在 ipad 上打开它时,它没有.. 而是显示一个黑色的不能播放矩形。
当我将相同的文件放入 apache 服务器并在 ipad 上打开 video.html 时,视频播放完美....
到底是怎么回事?
clojure - 如何托管 CGI 应用程序?
到目前为止,我已经测试了 hunchentoot-cgi(CL)、maytpd2(Haskell)、ocsigen(OCaml)、yaws(erlang) 来托管旧的 python CGI 应用程序。除了hunchentoot-cgi,一切都很好。我喜欢 Lisp 风格的编程,所以我真的很想将应用程序托管在 Lisp 风格的 Web 服务器中。
在erlang中,我只需要如下配置它:
然后 python CGI 应用程序可以工作。
Noir/Ring怎么样?