问题标签 [luminus]

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 投票
0 回答
271 浏览

authentication - 未经身份验证的用户重定向到 /login

我正在尝试对 compojure、ring 应用程序进行身份验证。/login如果用户未通过身份验证,我想要做的是重定向到。下面的方法似乎正在做我想要的。

我在这里添加了wrap-restricted处理程序#'home-routes

然后在中间件中,我更改了处理程序on-error中引用的wrap-restricted,以执行重定向而不是 403 响应:

我的问题是,这是正确的(推荐的最佳实践)方法吗?

0 投票
1 回答
108 浏览

clojure - 无法从留言簿应用程序中的哈希图中获取密钥

我正在玩 luminus 留言簿应用程序。我添加了一些日志语句g.test.db.core.clj来查看数据结构的键。查看下面的“预期键”和“实际键”。

“预期键”打印正常,但“实际键”出现运行时异常:

[2017-03-04 14:31:28,076]预期密钥(:名称:消息:时间戳)

[2017-03-04 14:31:28,089]实际密钥

lein 测试:仅 guestbook.test.db.core/test-messages

(测试消息)中的错误 (:) 未捕获的异常,不在断言中。预期:nil 实际:java.lang.ClassCastException: null at [empty stack trace]

lein 测试 guestbook.test.handler

但是,如果我这样做: (pprint actual) 我得到我想要的:

到底是怎么回事?为什么我不能打印从数据库返回的数据结构中的键?

0 投票
1 回答
108 浏览

logging - 已部署的 Clojure Web 应用程序中的日志文件在哪里

我在 Luminus 中开发了一个小型 Clojure Web 应用程序,现在正尝试将它部署在我的本地机器(Mac OS X Sierra)上。我遵循了http://www.luminusweb.net/docs/deployment.md上的指南,并成功地将其编译为独立的 jar 文件(lein uberjar)和 tomcat 战争文件(lein uberwar)。

但是当我运行它时,我得到一个 500 服务器错误,无论是独立的还是 tomcat 的。我想检查日志文件以查看发生了什么,但我无法在任何地方找到它们。任何人都知道独立应用程序和/或 tomcat 战争文件将其日志文件放在哪里?

0 投票
1 回答
64 浏览

database - Clojure 预设数据库

我刚开始学习 Clojure,并使用 h2 嵌入式数据库引擎和 Luminus 框架制作了我的第一个 Web 应用程序。我想预设一个数据库,所以当我的应用程序第一次运行时,它带有一个已经在数据库中的管理员用户。

我在 core.clj main 中添加了执行此操作的代码,在 (start-app args) 之后,但我确信它不应该去那里。

如果有人能向我解释这个预设应该去哪里以及为什么,我将非常感激。一些好的教程也将不胜感激,因为我 google-ed 和 google-ed 但在这个主题上一无所获。

先感谢您!

0 投票
1 回答
149 浏览

clojure - 在每个 selmer 模板中访问请求图的简单方法?

我想访问我的 Selmer 模板中的当前页面 URL,以便我可以将其传递给编辑页面操作,这样即使在编辑之后,该页面也可以包含返回“调用”页面的链接。

这是我的 Selmer 模板中的模板代码——这看起来不错:

以下是我在搜索时设置返回值的方式:

(defn photo-search [word req] (layout/render "search.html" {:word word :photos (db/photos-with-keyword-starting word) :back (str (:uri req) "?" (:query-string req)) })) ;; ... (defroutes home-routes ;; ... (GET "/photos/_search" [word :as req] (photo-search word req))

这工作正常。但是,我还有其他返回照片列表的方法,并且将此代码添加到所有其他方法似乎违反了 DRY 原则。

有没有更简单的方法可以做到这一点,也许使用一些中间件?

0 投票
1 回答
165 浏览

clojure - 长响应得到削减:clojure.lang.ExceptionInfo:无法'写入流

我将以下代码添加到一个干净Luminus并遇到以下问题:

如果我请求一个响应 100 KB(可能或更多)数据的 API,那么长响应将被切断,因此我只能获得其中的一部分。

我不确定这是否是因为以下代码。我不熟悉JAVA,您能给我一些建议吗?我正在使用Luminus框架,相关代码是:

url获取响应数据切: http://localhost:3000/www/stock/klinedata?stockid=300370.SZ&period=D

原文网址: https ://www.joudou.com/stockinfogate/stock/klinedata?stockid=300370.SZ&period=D

错误信息是:

我丢了一个slurp-binary,我试过这个功能的两个版本,一个是

另一个是:

我不确定该函数是错误发生的地方,但是这两个版本都不起作用。

谢谢。


我试图获取原始 req 和client/requestreq,然后我在 REPL 中得到了完整的响应。所以我怀疑是wrap-base谁导致响应被切断。

0 投票
0 回答
251 浏览

clojure - 如何运行使用 Overtone 的 Luminus 项目?

我正在编写一个使用 Overtone 的网络应用程序。当我尝试使用运行应用程序lein run或尝试在项目目录中启动 repl 时,我收到相同的错误:java.lang.ExceptionInInitializerError at clojure.main.<clinit>(main.java:20) Caused by: java.lang.Exception: Server needs to be connected before you can perform this action.

在我看来,这两个动作都使我项目中的所有文件都编译了。在我运行服务器后,有什么方法可以编译使用 Overtone 的命名空间?或者也许这不是问题,问题来自其他东西?

这是我的 project.clj 文件:

编辑:在启动 SC 服务器并尝试在我的主要功能中连接到它后,我仍然遇到相同的错误。包含主要功能的文件:

0 投票
0 回答
76 浏览

clojure - Clojure Luminus migratus 数据库/模式文件

我是从 RoR 到 Clojure/Luminus 的新人。读完《用clojure做web开发》一书后,发现了一个关于数据库迁移的问题。在 Rails 中,运行一个迁移文件后,新修改的表结构会显示在db/schema.rb文件中,这样我们就知道我们为schema文件中的表定义了什么。所以我想知道 Luminus 中是否有类似的文件db/schema.rb

0 投票
1 回答
337 浏览

clojure - Cider 版本与新 luminus 项目中的 cider-nrepl 版本不匹配

我正在尝试使用 luminus,当我使用 emacs Mx cider-connect 连接到由 lein run 启动的 repl 时,所有新的 luminus 项目都给我 cider version/ cider-nrepl version mismatch 错误:

警告:CIDER 的版本 (0.14.0) 与 cider-nrepl 的版本 (nil) 不匹配。事情会破裂!

如果我忽略自动启动的 nrepl 并使用 Mx cider-jack-in 启动新的 repl,我看不到错误。这是我通常用于 clojure 项目的内容,但使用 luminus 似乎有些事情不能正常工作(如果我没记错的话,启动和停止 h2 数据库,但这是另一个问题)。

我删除了我的 ~/.lein/profiles.clj 文件并将其替换为仅包含 cider-nrepl 插件的文件,即:

我也尝试通过 project.clj 文件添加插件,但仍然出现错误。

lein deps :tree 给了我一些可能的冲突并建议排除,但没有一个涉及 nrepl 或 cider。

我在这里想念什么?

0 投票
1 回答
513 浏览

clojure - 为 luminus clojure 项目创建可执行文件的问题

我正在构建一个服务器程序,为包含照片详细信息的 mongo 数据库提供 API。从 REPL 运行它一切正常,或者如果我使用 lein run 启动它。

当我尝试运行 uberjar 时会出现问题。构建 uberjar 工作正常:

但运行 jar 会出现错误:

或者快照罐。

我在这里想念什么?我猜这与开发构建和生产构建差异有关,但我看不出任何明显的东西,错误消息对我没有多大帮助。

这是项目文件,据我所知,它主要来自原始 luminus 模板: