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

mongodb - 如何在 Luminus 应用程序中检查 Monger 连接(MongoDB 不可用)?

我正在学习 Clojure (1.10),并正在使用 Luminus 框架 (3.93) 编写一个小型 Web 应用程序,使用 Monger 客户端 (3.1.0) 连接到 MongoDB 实例。Luminus 生成一些脚手架代码,用于在启动时创建数据库连接池(使用函数monger.core/connect-via-uri<myproject>.db.core

我的问题:如果此时 MongoDB 实例不可用,则不会显示任何警告问题的信息。提供网页,直到需要调用 Monger 函数。此时,应用程序“搅动”,然后超时(设置为 30 秒)并出现异常/堆栈跟踪错误屏幕(除了可怕的用户体验之外,还可能暴露本应保密的代码/数据)。

当必备数据库不可用时,如何最好地防止启动应用程序?

一种(诚然笨拙的)初始尝试是将 Monger 调用插入到上述启动代码中。这会在启动期间导致超时异常(带有异常消息),而不是启动 Web 应用程序。有什么更好的方法?

另外,您是否知道一种方法可以让此类问题停止启动过程,而不是重试并大量输出失败消息?

0 投票
2 回答
125 浏览

clojure - Luminus H2留言簿应用程序中没有合适的驱动程序

尝试使用 Luminus 模板和 H2 db 从 Leiningen 创建简单的示例应用程序。没什么特别的,我确实看到很多这样做的例子,但总是得到No suitable driver.

该文件包含:

我已经从其他示例中尝试了各种变体。

0 投票
0 回答
89 浏览

clojure - Clojure luminus 和多个相同的请求参数

只是玩 Luminus,我有一个简单的搜索功能

参观时一切都很好localhost:3000/search?q=foo。但是,当我访问时localhost:3000/search?q=foo&q=bar,出现以下错误

我确切地知道问题出在哪里,第一个 URL 插入{:q "foo"}到参数中,而后者给出了{:q ["foo" "bar"]}. 我可以在我的控制器中使用类似这样的东西进行修复:

但作为 Luminus 和 Clojure 的初学者,我不确定我是否弄错了。我一直在互联网上搜索现有技术,但没有成功。

我知道Struct 库。这似乎已经到了一半,但是 usingst/string会给出错误“必须是一个字符串”,而不是只取最后一个值。

需要明确的是,我可能会在我自己的代码中停止 500 个错误,但我只是希望 Luminus 文档中的某处有一行可以满足使用多个相同键的工作(TM),而不必大惊小怪。与其他框架进行比较(据我所知,作为我多年未使用的一些框架的信息):

  • Django:返回最后提供的值
  • Rails:采用最后提供的参数,除非键以 [] 结尾,在这种情况下它会强制使用列表。
  • Mojolicious:提供两种不同的返回参数的方法,一种像 Django,另一种总是给出一个列表(甚至是一个空的)
  • Python urlparse:总是返回一个列表

这些中的每一个对我来说都更直观,但是如果我缺少某些东西,请告诉我。

附录

根据@noah-bogart将其转变为特定问题的好建议,这是一个尝试:在我看来,Luminus 中的默认行为通过上面概述的易于重现的客户端机制给出了 500 个错误。其他 Web 框架可以有效地防止这种情况发生,最终开发人员无需支付任何费用,如上所述。Luminus 或更广泛的生态系统中是否有提供此功能的中间件或命名空间?

后附录

为了扩展我在上面写的关于 Django 的内容,该框架具有与 Mojolicious 类似的过程,您可以指定您想要一个列表还是单个值

0 投票
1 回答
116 浏览

clojure - How to Access Environment Variables In Clojure - Luminus Web Framework

I need help accessing my environment variables. I have :my-variable "value" in dev-config.edn and I'm trying to access it in another place. I required [my-app.config :refer [env]] and trying the following:

I tried this and several other things... What's the right to do this?

0 投票
1 回答
63 浏览

clojure - 循环依赖?

我用 postgres 设置了一个基本的 luminus 模板。我希望能够添加新用户并对其进行身份验证,遵循本书第 6 章第 168 章的示例:https ://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition /

我遇到了问题,所以我重新开始了一个新项目,试图通过这部分。

我创建了一个新的 luminus 项目,创建了数据库表,并更新了 project.clj 文件。我可以迁移,但后来我添加了一个 auth.clj 文件,然后用 lein run 重新启动,现在我收到此错误:

我不确定发生了什么,因为我的依赖项与源代码完全相同,而且我完全是初学者。

我能做些什么来解决这个问题?

0 投票
3 回答
72 浏览

clojure - 命名空间中的函数没有被读取?

我用 postgres 设置了一个基本的 luminus 模板。我希望能够添加新用户并对其进行身份验证,遵循本书第 6 章第 168 章的示例:https ://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition /

我遇到了问题,所以我重新开始了一个新项目,试图通过这部分。

我创建了一个新的 luminus 项目,创建了数据库表,并更新了 project.clj 文件。当我尝试创建测试用户时出现错误。

我已经完成了以下命令:

在另一个终端,我做

我更新了 dev_config.edn 文件:

}

然后我做了

我收到此错误:

我编辑/创建的文件:project.clj(添加好友)

auth.clj:

查询.sql:

迁移:添加用户表:

向下添加用户表:

我能够添加消息/帖子就好了。对于这个测试项目,我只是想让新用户隔离问题。

我究竟做错了什么?我应该注意哪些部分?

谢谢。

0 投票
2 回答
67 浏览

web - 在 luminus 中调用 clojure 函数时出现防伪令牌错误

我正在使用 luiminus 学习 clojure,并且我正在尝试按照示例解析参数。通过使用 curl 我正在发送要打印的用户名和密码,调用 foo 在以下路线中。但是,我收到“无效的防伪令牌错误”。我一直在寻找解决方案,但找不到任何解决方案。请注意,我也在使用 wrap 中间件行。有什么建议么?

主页.clj:

0 投票
1 回答
77 浏览

postgresql - 为什么我的 luminus 应用不能在 Heroku 上运行?

我是一个完整的初学者并遵循这本书:https ://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition/

我按照书中和这里关于部署到 Heroku 的说明进行操作:https ://luminusweb.com/docs/deployment.html#heroku_deployment但我遇到了一些问题。

这是我的问题和我已采取的步骤。我在这里使用来自留言簿控制器的源代码并对其进行修改,只是试图让应用程序在 Heroku 中运行(即能够创建帐户、登录并发布消息)。这是我的仓库:https ://github.com/johnbradens/guestbook-heroku

这是我的步骤:

这是我在查看 Heroku 应用程序时看到的:

错误 1 ​​错误 2

当我运行时,heroku run lein run migrate我收到以下错误:

我尝试编辑,env/prod/resources/config.edn但我不确定如何处理它。我尝试了很多东西,但都没有奏效。

env/prod/resources/config.edn这是我在更改文件时尝试的示例。上面的链接之一说只有{:prod true}这样,这就是我现在所拥有的,但我也尝试过:

编辑:感谢 clojure 松弛,我发现我的 env 文件夹被忽略了,并创建了一个 prod-config.edn 文件,我在该文件中有上述文本。我尝试再次推送到 Heroku,但仍然收到与 Web 应用程序上的图像相同的错误,并且当我运行heroku run lein run migrate找不到配置文件时仍然收到相同的错误消息。

我应该怎么办?

0 投票
0 回答
42 浏览

clojure - How to make validation errors only show up after the form is filled?

I am following the same book & have the same issue as here:

https://forum.devtalk.com/t/web-development-with-clojure-third-edition-missing-code-and-surprising-behaviour-136/12171

How do I fix this? I can post code & screenshots if needed. I'm a total beginner so anything helps.

Edit: I have a form where people submit a message. I have validation set up to make sure the message is required and is longer than 10 characters. I want an error message to show up when the user tries to submit without a message or the message less than 10 characters. However, the message shows up automatically, before the user has a chance to submit it. I want the message to NOT show up immediately. I want it to ONLY show up if there are errors when the user clicks the submit button.

0 投票
0 回答
35 浏览

clojure - Luminus - 从 selmer 模板中的 REST API 路由访问数据

我想制作一个提供 REST API 并在 Selmer 模板中提供来自该 API 的数据的 Luminus 应用程序。但是,我无法弄清楚如何让路由工作。

例如,如果您使用命令创建一个 luminus 模板lein new luminus consume_rest +reitit +swagger,您将在 下获得 selmer 模板home-routes和 REST API service-routes。我想将端点提供的数据包含service routeshome-routes.

有没有人有关于如何构建这个的建议方法,或者一个这样做的应用程序的例子?我见过的每个使用 REST API 的项目都是使用 clojurescript 的 SPA,它使用 AJAX 调用 REST API。