问题标签 [pedestal]

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 回答
333 浏览

clojure - 如何在 Pedestal 中呈现 HTML 模板?

我正在查看 Pedestal 文档

没有关于如何从模板呈现 html 的示例。底座也有这个功能吗?如果是这样,任何人都可以用一个例子来解释这是如何工作的......

0 投票
1 回答
436 浏览

clojure - 如何在 Clojure 基座 repl 中重新加载代码以实现快速开发工作流程?

我正在使用 Pedestal (pedestal.io) 并且在开发中正在从 repl 内部运行服务器。

当我对应用程序代码进行更改(例如更改 html 模板)时,如何让 repl 在保存文件时自动反映这些更改并让它们在浏览器刷新时显示?

0 投票
1 回答
824 浏览

clojure - Ring 和 Pedestal 之间的关系是什么 - 我需要知道 Ring 才能使用 Pedestal 吗?

我被引导相信 Pedestal 是 Ring 的替代品,但是从所有示例中我看到 Pedestal 实际上使用 Ring。这是最令人困惑的!为了有效地使用 Pedestal,我是否需要了解和了解 Ring 的工作原理。本质上,Pedestal 是“站在 Ring 的肩膀上”还是打算完全取代它?

0 投票
2 回答
1854 浏览

clojure - 从 POST 请求中获取 POST 正文数据到 Pedestal

我已将数据发布到基座端点“/my-post。我已按如下方式路由该端点:

所以在我看来,这意味着 body-params 拦截器也会为 /my-post 触发。

在 mypost-handler 中,我有:

我现在如何在此处访问表单数据?我可以从打印请求中看到我有一个 #object[org.eclipse.jetty.sever.HttpInputOverHTTP..] 显然需要进一步处理才能对我有用。

(我必须说,Pedestal 的文档充其量是相当粗略的......)

0 投票
1 回答
488 浏览

clojure - 如何获取 Pedestal 中的 URL 查询参数?

如何将 URL 参数放入 Pedestal 的请求映射中?我假设这需要使用拦截器?然而,基座文件(或严重缺乏)并没有说明这一点。谢谢。

0 投票
1 回答
405 浏览

amazon-ec2 - 由于异常,Tomcat 7 无法在 EC2 实例上部署

我根据以下内容构建了我的基座应用程序

https://github.com/pedestal/pedestal/blob/master/guides/documentation/service-war-deployment.md

然后我上传 .war 文件并部署它。

但是,当我 ssh 到 ec2 实例时,我发现它没有成功部署,即使它这么说

我认为这是特定于基座的,因为我成功地部署了一个打包到战争中的 clojure ring Web 应用程序而没有问题。

0 投票
2 回答
195 浏览

clojure - 如何使用 'after' 函数在 Pedestal 中创建拦截器

我希望制作一个新的 Pedestal 拦截器,以便在离开阶段运行。我希望修改上下文以将令牌字符串添加到每个 html 页面的底部(用于“站点活动”报告)。

这里的基座源代码中,我看到了这个函数:

所以我需要为它提供一个函数,然后将其插入拦截器映射中。那讲得通。但是,当“上下文”不在范围内时,如何编写引用上下文的函数?

我想做类似的事情:

但是'ctx'不在范围内?谢谢。

0 投票
1 回答
757 浏览

clojure - Clojure Pedestal 根用作应用程序/八位字节流

我正在尝试在Pedestal 0.5.1中托管静态资产和服务。我正在使用::file-path指向一个目录来托管文件。如果我直接导​​航到文件http://localhost:8888/index.html ,这很好用,但是如果我转到站点http://localhost:8888的根目录,它会将文件作为application/octet-stream而不是text/html. 我改编了Hello World 示例,它具有相同的行为。

src/hello_world/server.clj

开始lein run

有没有办法修复“/”路由以提供正确的内容类型?

0 投票
1 回答
281 浏览

encoding - UTF-8 符号无法在使用 Pedestal 的浏览器中正确显示

我制作了最简单的 Pedestal 项目并在我的 repl 本地运行它。但是,在查看浏览器后,localhost:8890我看到了 �(替换字符)而不是实际文本(西里尔符号),我将其放入了 Pedestal 路线。

我还检查了浏览器 devtools 响应标头: Content-Type:text/html;charset=utf-8 is present。

在你问之前:

  1. 是的,我设置了charset=UTF-8响应,您可以在下面的代码中看到。
  2. 我的core.clj文件也是 UTF-8 编码的。
  3. 我也尝试过其他浏览器,同样的事情。
  4. 附加信息:我使用的是 Windows,但在使用其他库和框架(ring、yada)之前从未遇到过这个问题。会不会是 Pedestal 在将我的代码传递给码头服务器时以某种方式在内部破坏了我的代码?我不知道。

整个项目代码:

这是一种奇怪的行为,我不知道我错过了什么,所以任何帮助将不胜感激。谢谢!

0 投票
1 回答
480 浏览

clojure - 基座提前终止不起作用

http://pedestal.io/reference/servlet-interceptor这么说

在调用 :enter 函数之前,servlet 拦截器在上下文中设置一个“终止符”谓词。当拦截器返回的上下文映射附加了响应映射时,它会终止拦截器链。

我的服务器有这个:

我的服务如下所示:

当向 localhost:5000/clients 发送带有未通过规范的正文的请求时,create-spec-validator 拦截器会向上下文添加响应。我已经通过在主页拦截器中记录上下文来确认这一点。我希望根据文档跳过主页拦截器。这不会发生。而是调用主页拦截器的 :enter 函数并覆盖响应。

当在它之前的 create-spec-validator 返回带有响应的上下文时,为什么不跳过主页拦截器?