问题标签 [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 回答
96 浏览

clojure - 如何在 mustache / ring 中定义公共路由或后续路由

我有两条小胡子路由,基本上是http://localhosthttp:localhost/路由,它们指向相同的功能 -

我如何能 -

  1. 是否可以同时指定这两条路线,例如 ["" "/"],因为它们彼此跟随?
  2. 是否可以从一个路由重定向到另一个 ex [""] (redirect "/") ?

谢谢,穆尔塔萨

0 投票
1 回答
202 浏览

clojure - 如何在 mustache 处理程序中访问/传递请求映射

我想创建一个接受两个输入的处理函数。一个是从 url 获取的参数/name,第二个是来自查询字符串的参数/name?x=3

上面的失败是因为处理程序需要 2 个参数,但是我只传递了一个。

如何获取请求映射并将其传递给处理程序?

上述案例中的请求映射包含一个名为x.

0 投票
1 回答
650 浏览

clojure - 如何在环应用程序中跨不同用户会话维护状态

我需要跨不同的浏览器/用户会话在服务器上维护全局状态。

我在这里的假设是,当请求进入时创建的所有原子等都是特定于该请求的。一旦返回响应,所有状态都将被销毁并释放内存。如果我错了,请纠正我。

可以使用会话中间件在内存中维护跨特定会话请求的状态。

但是,如何跨多个用户会话和请求维护状态。如果可能的话,我想避免使用 memcached / redis 等在外部存储它。是否有可能在内存本身中实现它?

0 投票
3 回答
928 浏览

deployment - Clojure/Ring:如何将我的 clojure 应用程序与我无法控制的 java 构建过程集成?

我有一个独特的构建情况。我正在使用lein uberwar我的环应用程序构建战争并部署到 beanstalk。这一切都很好。现在出现了一个要求,我们需要将代码推送到一个 svn 存储库,在那里他们将管理构建,它对 clojure(仅 java)一无所知。这是一个庞大的官僚组织,他们的构建过程已经到位,所以让他们安装lein在他们的服务器上目前是不可能的。我知道 lein 在引擎盖下使用了 maven,所以我知道这在理论上可行,但我仍然对这个过程的几个步骤持怀疑态度。

我经历了lein-ring中的战争构建过程,我看到的主要问题是生成了 servlet 和 listener 类,以及 web.xml。我觉得我可以提供执行此任务的 java 文件,但不清楚这些 java 文件将包含什么以及它们最终将存在于项目结构中的什么位置。查看最终战争中生成的 servlet.clj 和 listener.clj 文件,它们看起来非常简单,可能已经存在这方面的示例?

我看到的另一个大障碍是战争进程调用clojure.core/compile了项目命名空间,它从 clojure 源生成所有类文件。在从 maven 构建期间是否有某种方法可以触发此编译?我几乎在想象一个 java 类,它将编译外包给 clojure.core/compile,但我不确定从 java 调用 clojure 的来龙去脉,而不是反之亦然(通常的流动方向),或者如何插入这一步进入一个基本的 Maven 构建过程。

任何关于从哪里开始的见解都将受到欢迎!谢谢大家。

0 投票
1 回答
3045 浏览

session - Compojure/Ring:为什么与 cookie-store 的会话在服务器重启后无法幸存?

我有一个组合应用程序,它使用环会话包装器来存储与当前用户关联的 OAuth 令牌。我希望这个令牌在服务器重新启动时保持可用,这样我就不必每次都通过身份验证过程。

我认为使用 cookie-store 而不是默认的 memory-store 会有所帮助,但事实并非如此。我错过了什么?

这是代码的相关部分:

该函数root-handler使用令牌来决定是否有人登录,但不会以会话信息的方式返回任何内容。

0 投票
1 回答
2868 浏览

clojure - 在环形应用程序中捕获异常的惯用方法

在环形应用程序中处理异常的惯用方法是什么。我想捕获异常并返回 500 页。我怎么做 ?

我在下面的代码中使用了 mustache,但是它不起作用 -

0 投票
2 回答
562 浏览

clojure - 使用 Clojure/Ring 提供二进制文件时出现间歇性错误

我正在Clojure中为Snowplow构建一个事件收集器(使用 Ring/Compojure),并且在使用 Ring 提供透明像素时遇到了一些麻烦。这是我发送像素的代码:

当我启动服务器时,我第一次点击路径时send-pixel,像素已成功传送到我的浏览器。但是第二次——以及之后的每一次——Ring 都没有发送任何正文(并且内容长度为 0)。重新启动服务器,它是相同的模式。

有几件事不是:

  1. 我已经复制了这个wget,以确认间歇性不是浏览器缓存问题
  2. "R01GOD..."我在命令行 ( )生成了base64 字符串,cat original.gif | base64所以知道那里没有问题
  3. 当像素发送成功时,我已经验证了它的内容是正确的 ( diff original.gif received-pixel.gif)

我是 Clojure 的新手——我猜我的代码中有一些令人尴尬的动态 gremlin,但我需要帮助来发现它!

0 投票
1 回答
1055 浏览

clojure - 使用 ring format-params 中间件访问发布的 json

我正在尝试使用 clojure 中的环制作一个非常简单的 API。我正在使用 rack.middleware.format-params 中间件将输出转换为 json,并将输入从 json 转换为 clojure 数据结构。

我的输出运行良好,但我无法终生访问通过 json 发送的参数。这是一些适用于获取请求的代码,但我无法让 POST 请求返回它收到的 json

它只是返回这个:{}

我究竟做错了什么?

0 投票
3 回答
2728 浏览

clojure - Clojure ring wrap-json-params 弄乱了 JSON 数组

我目前正在 clojure 中做一些 REST API 的工作,我正在使用带有 compojure 的 ring.middleware.format 库将 JSON 转换为 clojure 数据结构和从 clojure 数据结构转换。

我遇到了一个大问题,因为发布到 ring 应用程序的 JSON 将所有数组替换为数组中的第一个项目。IE 它将把这个 JSON 从

对此

它适用于任何数组,包括当数组是根元素时。

我在 clojure 中使用以下代码返回 json:

GET 路由对数组和正确输出没有问题,因此它必须是我获取数据的方式或wrap-restful-params中间件。

有任何想法吗?

0 投票
1 回答
411 浏览

http - Noir 的基本 HTTP 身份验证

我已经开始弄清楚如何使用 noir,现在我想使用 http 基本身份验证。

我偶然发现了https://github.com/adeel/ring-http-basic-auth。不过,给定的例子似乎适用于 compojure 而不是 noir。

我想知道 noir 的抽象级别是否太高而无法允许不同页面的不同身份验证?!

我也知道这可能是可行的方法:http ://webnoir.org/tutorials/others ,不过,我对整个 clojure 生态系统还不够满意,无法了解如何适应这些环处理程序作为特定路由的http认证。

有没有人可以给我一个关于我应该如何思考这个问题的提示?

谢谢,