问题标签 [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 投票
1 回答
100 浏览

clojure - Luminus 中的复选框

这周我开始学习 Clojure,特别是我正在学习 Luminus 的 Web 开发。因为我想了解 CRUD 过程,所以我设置了一个函数来将我的帖子保存到数据库中:

查询非常基本:

但 HTML 表单有一个复选框字段:

未选中时,不发送该字段,SQL 插入查询发送错误消息“No active field”。如何检查是否设置了元素“活动”并将其添加到“参数”中作为真或假?

就像是:

在 ":created_at (java.util.Date.)" 行之后。

0 投票
2 回答
314 浏览

clojure - ClojureScript 函数总是被执行

我正在学习 ClojureScript,我有两个函数可以更改“root-app”div 中的内容:

在http://localhost:3000/about中一切正常,因为该页面中存在“root-app” div,但在http://localhost:3000/blog中,我收到错误消息:

在此处输入图像描述

因为该页面中没有这样的 div。这一切都很奇怪,因为看起来 ClojureScript 实际上发现:

实际上是 false en console.log 没有打印。

我的问题是:为什么即使条件if为假,函数mount-components也会运行并发送错误消息?奇怪的是console.log:

不运行,但mount-components功能可以。我想我不理解 ClojureScript 工作方式的“序列”。

0 投票
5 回答
510 浏览

clojure - Hugsql 无法读取我的 sql 文件

我真的迷失在这里了。我有一个非常简单的应用程序。它所做的只是将用户插入到我的数据库中的用户表中。我使用 Postgres。代码是

在 db.clj 所在的目录中,我创建了一个名为 sql 的目录,其中有一个名为 q.sql 的文件。

当我运行 REPL 并输入 (require '[signupper.db :as db]) 时,我收到以下错误消息:

任何人有任何想法?

谢谢。

0 投票
2 回答
350 浏览

clojure - Clojure Luminus 迁移 - 每个迁移文件只有一个表

我正在使用 Clojure 和 Luminus 创建一个 Web 应用程序,但是当我创建一个包含我需要的所有表的迁移文件时,它只会创建第一个。这是我的user-table.up.sql文件:

当我运行时lein run migrate,只UserTable创建表。这应该像这样工作吗?我需要为每个表创建一个迁移文件吗?

0 投票
1 回答
302 浏览

testing - 测试错误:如何使用:id?

我第一次尝试在 、 和 中luminus执行h2hugsql操作clojure

insert语句在连接到h2数据库的 SQL 客户端中输入时工作正常,但在代码中失败。似乎它与查询的WHERE id = :id子句有关get-assessor,但找不到这样做的方法。

在文件中./resources/sql/queries.sql

在文件中:./test/db/core.clj

返回(截断)的消息是:

如何解决这个问题?

0 投票
4 回答
329 浏览

http - Clojure:luminus 框架的默认服务器是什么?

截至目前(2018 年),当您使用默认设置设置 luminus 模板项目时,使用的 http/tcp 服务器是什么?

我正在阅读 luminus 使用 immutant,但是,immutant 是其他东西的集合。而且我还读到 immutant 中使用的底层服务器处于低潮状态。

我是否正确假设默认服务器处于低级状态?如果是这样,默认设置对于非阻塞 IO 的执行情况如何?该服务器是否提供像 nginx/nodejs 这样的非阻塞事件循环架构?

0 投票
1 回答
145 浏览

clojure - 在 luminus 项目的 swagger 设置中使用 cprop env 信息

我正在使用 swagger 为数据库访问程序提供 API。在开发过程中,我通常运行 2 个版本,即我在登录时自动启动的开发版本和生产版本。我想在大张旗鼓的首页上显示一个不同的标题,这样我就不会意外地破坏我的实时数据库。到目前为止,我一直在 swagger 设置中手动编辑标题字段,但这很容易出错,我经常在运行lein uberjar构建 prod 版本之前忘记更改它。

环境设置似乎是一种理想的方式来做到这一点。luminus lein 模板已经使用了一个从 dev 和 prod 配置文件构建的环境映射,它工作正常,允许我为 2 个构建自动指定不同的端口。我在其中添加了一个条目,它给了我一个在 prod 和 dev 版本中不同的标题。我可以从 repl 中看到它,但是将它包含在 swagger 规范中只会给出null.

swagger html页面截图

这是我的 photo-api.routes.services.clj 文件开头的 :swagger 定义:

注释掉的 :title 规范工作正常,但(:title env)调用没有,尽管它与我可以从 repl 成功使用的调用完全相同。我相信环境图是作为 photo-api.config 的一部分构建的,并且从我启动服务器时的启动消息来看,它看起来像是在 http-server 之前成功启动的:

这是 photo-api.config,与 luminus 默认值相同:

和 dev config.edn 文件:

我在这里遗漏了一些明显的东西吗?是否需要另一个步骤才能使 env 地图对 swagger 设置可见?

编辑:将调用从更改(:title env)为 (env :title) 会导致 cider-jack-in 失败,并出现很长的错误消息/堆栈跟踪,其中包括:

再次将其更改为(@env :title)then 会给出类似长的错误消息/堆栈跟踪,其中包含:

所以看起来 env 直到从 swagger 设置调用它之后才开始。我仍然不知道为什么当 cider-jack-in 确实起作用时,它清楚地显示了 config.env 状态在 http-server 之前开始。(看上面)

0 投票
1 回答
298 浏览

mongodb - 如何使用 Luminus 对 MongoDB 进行单元测试?

我可能遗漏了一些简单的东西,但是我对 clojure 的经验不足,无法理解我遇到的错误。

我有一个简单的 luminus clojure 应用程序设置和 Monger 库来处理我的 MongoDB 连接。我添加了一个应该始终传递给我的测试文件的简单测试。

但是,这不起作用,并引发以下错误

我假设这与测试环境没有正确设置数据库内容并在那里失败有关。我做了一些搜索,但没有找到任何有用的东西,而且 Monger Docs 中似乎没有任何测试帮助。我确信上述create-user调用在实际环境中运行时确实有效。

0 投票
1 回答
1117 浏览

mongodb - Clojure - 如何在单元测试中正确挂载状态

我正在尝试使用 Monger 数据库库在 luminus 应用程序中测试一些数据库操作。

理想情况下,我希望以下工作。我已经删除了一些不相关的代码。

测试文件:

数据库文件

这不起作用,并给我以下错误:

据我所知,这没有正确安装数据库,因此它无法调用数据库操作。我试图将此安装代码移至测试,但仍然收到相同的错误。

我确实让这个工作:

测试文件

但这需要我在测试中重新编写操作,从而达到目的。如果我离开上面的连接,但调用 db/create-user 我会得到相同的状态错误。

我希望能够将我的测试文件中定义的连接传递到我的其他数据库文件中。有没有办法我可以做到这一点并让它覆盖它在那里的设置方式?

0 投票
0 回答
143 浏览

clojurescript - 一系列未捕获的类型错误:“xxxx”不是从 Brave 浏览器中的 ClojureScript 编译的 JavaScript 中的函数

我正在关注《Web Development with Clojure, 3rd Edition 》一书中的代码示例。目前正在运行使用 ClojureScript 使用 Reagent 和 Ajax 创建单页应用程序的示例。编译的 Javascript 运行良好,直到我尝试将数据从表单发送到服务器。这应该是破解的,因为我没有在任何Ajax代码中添加一个csrf令牌到post请求,作者想介绍一下js控制台如何用于登录开发,但事实并非如此打破预期。我应该收到这样的东西:

我已经确保我的所有依赖项和插件都是最新的。我最近切换到 Brave 进行测试,我非常喜欢它,但我遇到了一些这样的问题,当我在 Chrome 中测试它时,它运行正常(如预期的那样中断)。

这是我在 core.cljs 文件中的代码:

当我在 Brave 中打开页面时,我在加载时收到以下两条消息:

Javascript 仍然运行良好,但是当我点击“提交”按钮时,我收到这两个错误,我怀疑这可能是在 Google 的 Closure 代码中?没有把握:

关于为什么它在 Chrome 中按预期运行但在 Brave 中没有的任何想法?