问题标签 [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 - 如何在 mustache / ring 中定义公共路由或后续路由
我有两条小胡子路由,基本上是http://localhost和http:localhost/路由,它们指向相同的功能 -
我如何能 -
- 是否可以同时指定这两条路线,例如 ["" "/"],因为它们彼此跟随?
- 是否可以从一个路由重定向到另一个 ex [""] (redirect "/") ?
谢谢,穆尔塔萨
clojure - 如何在 mustache 处理程序中访问/传递请求映射
我想创建一个接受两个输入的处理函数。一个是从 url 获取的参数/name
,第二个是来自查询字符串的参数/name?x=3
上面的失败是因为处理程序需要 2 个参数,但是我只传递了一个。
如何获取请求映射并将其传递给处理程序?
上述案例中的请求映射包含一个名为x
.
clojure - 如何在环应用程序中跨不同用户会话维护状态
我需要跨不同的浏览器/用户会话在服务器上维护全局状态。
我在这里的假设是,当请求进入时创建的所有原子等都是特定于该请求的。一旦返回响应,所有状态都将被销毁并释放内存。如果我错了,请纠正我。
可以使用会话中间件在内存中维护跨特定会话请求的状态。
但是,如何跨多个用户会话和请求维护状态。如果可能的话,我想避免使用 memcached / redis 等在外部存储它。是否有可能在内存本身中实现它?
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 构建过程。
任何关于从哪里开始的见解都将受到欢迎!谢谢大家。
session - Compojure/Ring:为什么与 cookie-store 的会话在服务器重启后无法幸存?
我有一个组合应用程序,它使用环会话包装器来存储与当前用户关联的 OAuth 令牌。我希望这个令牌在服务器重新启动时保持可用,这样我就不必每次都通过身份验证过程。
我认为使用 cookie-store 而不是默认的 memory-store 会有所帮助,但事实并非如此。我错过了什么?
这是代码的相关部分:
该函数root-handler
使用令牌来决定是否有人登录,但不会以会话信息的方式返回任何内容。
clojure - 在环形应用程序中捕获异常的惯用方法
在环形应用程序中处理异常的惯用方法是什么。我想捕获异常并返回 500 页。我怎么做 ?
我在下面的代码中使用了 mustache,但是它不起作用 -
clojure - 使用 Clojure/Ring 提供二进制文件时出现间歇性错误
我正在Clojure中为Snowplow构建一个事件收集器(使用 Ring/Compojure),并且在使用 Ring 提供透明像素时遇到了一些麻烦。这是我发送像素的代码:
当我启动服务器时,我第一次点击路径时send-pixel
,像素已成功传送到我的浏览器。但是第二次——以及之后的每一次——Ring 都没有发送任何正文(并且内容长度为 0)。重新启动服务器,它是相同的模式。
有几件事不是:
- 我已经复制了这个
wget
,以确认间歇性不是浏览器缓存问题 "R01GOD..."
我在命令行 ( )生成了base64 字符串,cat original.gif | base64
所以知道那里没有问题- 当像素发送成功时,我已经验证了它的内容是正确的 (
diff original.gif received-pixel.gif
)
我是 Clojure 的新手——我猜我的代码中有一些令人尴尬的动态 gremlin,但我需要帮助来发现它!
clojure - 使用 ring format-params 中间件访问发布的 json
我正在尝试使用 clojure 中的环制作一个非常简单的 API。我正在使用 rack.middleware.format-params 中间件将输出转换为 json,并将输入从 json 转换为 clojure 数据结构。
我的输出运行良好,但我无法终生访问通过 json 发送的参数。这是一些适用于获取请求的代码,但我无法让 POST 请求返回它收到的 json
它只是返回这个:{}
我究竟做错了什么?
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
中间件。
有任何想法吗?
http - Noir 的基本 HTTP 身份验证
我已经开始弄清楚如何使用 noir,现在我想使用 http 基本身份验证。
我偶然发现了https://github.com/adeel/ring-http-basic-auth。不过,给定的例子似乎适用于 compojure 而不是 noir。
我想知道 noir 的抽象级别是否太高而无法允许不同页面的不同身份验证?!
我也知道这可能是可行的方法:http ://webnoir.org/tutorials/others ,不过,我对整个 clojure 生态系统还不够满意,无法了解如何适应这些环处理程序作为特定路由的http认证。
有没有人可以给我一个关于我应该如何思考这个问题的提示?
谢谢,