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

deployment - 作为 WAR 部署到 Jetty 的 Clojure 应用程序没有日志记录

我使用这些 WAR 制作和部署步骤构建了一个 WAR 文件并部署到 Jetty 9 ,这是对 Pedestal 建议的改编。这个过程过去对我有用,但目前,Jetty 不会启动应用程序。

我也找不到任何有用的日志。这是我的主要问题。我看过这些地方:

  • /var/log/jetty/current只告诉我这个:

  • /opt/jetty/logs- 根本不包含任何文件
  • /opt/myapp- 包含myapp.war但没有日志

我还尝试-DDEBUG=true -Dorg.eclipse.jetty.LEVEL=DEBUG在启动时添加到我的 Jetty JVM 选项,但额外的登录/var/log/jetty/current并没有告诉我 WAR 文件启动出了什么问题。

尽管日志记录在开发中有效(例如,使用lein run-dev),但如果我在日志记录配置中犯了某种错误,我不会感到惊讶。我正在使用Pedestal 服务模板提供的标准logback.xml 。

关于底层应用程序错误,我也有一些猜测。这很可能是由于最近应用程序依赖项的变化(我添加了 Datomic)或在启动时连接到 Datomic。

这是我的 project.clj

所以,重申我的主要问题,我如何让日志记录工作?其他一切都将随之而来。

0 投票
1 回答
263 浏览

clojure - 如何配置兄弟基座路由,以便在使用 :constraints 时可以访问所有路由?

我正在创建一个玩具基座服务,旨在拥有以下资源:

  • /
  • /movies
  • /movies/today
  • /movies/:iso-date其中:iso-date匹配####-##-##

最后一条路线的约束使用以下代码段定义:

每当包含此约束的路由出现在路由表中时,我都无法获取其兄弟路由/movies/today;相反,我收到的是“未找到”响应。但是,当删除具有约束的路由时,GET/movies/today成功。

我使用简洁格式定义的基座路线如下所示:

我是否正确构建了此路由表以实现我想要的路由行为?

注意:打印编译后的路由给了我我期望的结果,因为所有路由都存在,生成的正则:path-re表达式匹配 REPL 中的预期:

0 投票
1 回答
903 浏览

clojure - 何时使用 Pedestal、Hoplon、Bidi 和 Route-one?

正在尝试找出我应该使用哪一个(Pedestal、Hoplon、Bidi)?我在互联网上没有找到任何可以帮助我做出这个选择的好文章。

https://github.com/juxt/bidi我可以读到 Pedestal 是同构的,但 Bidi 也是 cljs。这是什么意思?有什么区别?

发现 compojure 太简单了。我什至不能在 HTML 模板中生成 URL。我开始寻找别的东西。我还发现了 route-one(生成与 compojure 一起使用的 URL 的库),但我想很快我会发现我需要的东西比 compojure 还要多。

我的直觉告诉我要选择:Pedestal、Hoplon 和 Bidi。

需要什么:我想要拥有独立的业务模型架构,例如

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

http://blog.find-method.de/index.php?/archives/209-Dependency-inversion-in-Clojure.html

我不想将这部分代码依赖于任何框架。更少的依赖更好。

在下一阶段,我想将这个模型业务注入到桥之类的东西中,这将是与用户界面的连接器。可能是框架或其他库的时候了。

至少我想创建前端用户界面作为网站。它将是 ClojureScript 的动态内容或可能是静态的。我不知道。我必须同时考虑这两个问题。

我在Clojure中发现了什么我真的很喜欢根据自己的喜好构建自己的库集的概念。但我不想编写自己的代码来使用诸如为路由生成 URL 之类的东西。所以也许我也应该考虑路线一?

写一些聪明的东西来帮助我选择一个或使我的生活复杂化并选择其他选项:)

https://github.com/juxt/bidi

https://github.com/pedestal/pedestal

https://github.com/tailrecursion/hoplon

https://github.com/clojurewerkz/route-one

0 投票
1 回答
198 浏览

clojure - 使用不变服务器从浏览器访问页面时出错

然后将以下文件添加到 immutant 文件夹

在那之后

接着

用 nrepl 声明的不变服务器

但是当我尝试在浏览器中打开页面时,它会抛出错误

我正在使用 immutant 1.1.4 和 pedestal-service 0.4.0

错误的堆栈跟踪

0 投票
2 回答
80 浏览

clojure - Clojure ^在命名空间中共享

我正在关注基座教程,我注意到^shared代码中的注释,如下所示:

它有什么用?

0 投票
1 回答
395 浏览

heroku - 从heroku发送带有邮政的电子邮件会引发奇怪的异常

我正在尝试使用 Postal 从 Heroku 上托管的 Pedestal 应用程序发送电子邮件。电子邮件应在 POST /send_email 处理程序中发送。

但它失败了:

它可以在本地运行,也可以通过在 heroku 上运行的 repl 运行。

来源:

堆栈跟踪:

0 投票
2 回答
1983 浏览

clojure - 当基座中允许来源时,不存在“Access-Control-Allow-Origin”标头

当我尝试从 cljs 应用程序(在http://localhost:3000上运行)向我的 Pedestal 服务器(在http://localhost:8080上运行)请求资源时,出现以下错误。我想允许来自http://localhost:3000的 CORS :

我正在使用cljs-http从客户端发送请求。请求看起来像这样:

的路线/db/query如下所示:

这是处理程序/db/query

为了运行服务器,我在 REPL 中执行了这个函数。

关于 Pedestal 的 CORS 似乎没有太多信息。我看过cors 的例子,但它似乎只是工作,而我的却没有。我是否需要将另一个拦截器添加到我的路由或我在这里缺少的某种配置设置中?

0 投票
1 回答
964 浏览

unit-testing - Clojure - 测试基座路线

我想为 Pedestal Web 服务编写测试。

如果我有 :

我将如何为此编写测试?

编辑:这是我尝试过的:

但我得到一个例外:

0 投票
1 回答
470 浏览

clojure - Clojure - combine pedestal routes

How do I combine routes in Pedestal ?

Note : This is a similar question as Combining routes in Compojure, but for Pedestal.

0 投票
1 回答
123 浏览

clojure - 基座拦截器中的 defbefore 发生了什么?

我正在关注 Pedestal 上的这篇博文(http://www.rkn.io/2014/08/01/async-interceptors/),其中提到了 io.pedestal.interceptor -> defbefore。使用最新的基座,此功能/宏不存在。它变成了什么?谢谢。