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

sqlite - lein run migration 不会创建数据库

尝试迁移以下文件时,

我得到以下结果:

似乎它没有找到连接,因此没有创建数据库。会是这样吗?

0 投票
1 回答
420 浏览

clojure - 重新投资戒指。Luminus 上仅在一组路由中进行身份验证和授权

我正在使用 Luminus 开发一个站点,直到现在我的中间件 wrap-base 函数看起来像:

和我的 routes/home.clj 文件:

但现在我需要开发一个新的 API(“/api/getcustomers”),所以所有的身份验证/授权(和 csrf)中间件必须只用于“home-routes”,而不是用于新的 API 路由。API 路由保存在新的 routes/services.clj 文件中。

令人高兴的是 Luminus 使用 reitit.ring,一种数据驱动的路由解决方案,但我不确定如何将身份验证/授权内容从通用中间件中移出并仅将其分配给“home-routes”部分。

0 投票
1 回答
86 浏览

clojure - clojure luminus 全局变量访问模板

我正在尝试使用 Luminus 和 Selmer 模板做一件简单的事情(至少对于常见的框架),但我找不到办法。我只想将值传递给基本模板,如下所示:

文件:home.html

我知道我们可以使用渲染文件来做到这一点,就像这样

(render-file "html/base.html" {:user user})

但它看起来不正确,它看起来像是一个奇怪的解决方法。

我的想法实际上是让一些全局变量来访问应用程序的任何地方,比如用户会话,但我在luminus 文档中没有找到它

0 投票
2 回答
241 浏览

clojure - Lacinia 和重新绘制不兼容的标头

我正在使用最后一个可用的 lacinia 版本:“0.36.0-alpha-3”和 Luminus (Ring+reitit),但这个版本要求一个特定的标题:

该请求可以正常工作,但如果没有“'Content-Type: application/graphql'”,该请求将无法正常工作。所以我需要定义我的重新图形初始化向量,如:

但是放置该标题会使重新图形无法正常工作:

看起来 re-graph 使用“application/json”标头发送和接收数据,因此 lacinia 要求某种类型的标头,但 re-graph 无法使用该选项。

0 投票
2 回答
391 浏览

clojure - 为什么我在 Luminus (Clojure) 中看到参数不匹配错误?

编辑(固定)...

如果您正在关注Luminus 留言簿教程或修改其中的部分内容,您可能会遇到类似 的错误Parameter Mismatch: :name parameter data not found.,并且无论您使用什么参数,它都可能不会消失。您可能会发现您正在尝试调用一个不存在的函数,而 Conman/HugSQL 不知道如何处理它。

我的问题的答案在以下部分:


代码的相关部分在myapp.routes.home/create-user!

下面的代码不正确:

我通过更改它来修复它,如下所示:

所以事实证明我向 db/create-user 传递了错误数量的参数!似乎康曼不知道如何调用查询。

此外,我以草率的方式修复了迁移中的一些问题 - 通过编辑已经发生的迁移。我注意到 Conman 似乎没有注意到您是否正在更改旧的迁移和 queries.sql 文件。如果您发现 query.sql 没有反映您的数据库 api(因此当您将 id 字段设置为自动增量时,您仍然会收到有关 ID 参数的消息,那么您需要让 Conman 重新生成您的数据库 API。

这可以在 REPL 中完成,如下所示:


下面是原帖

非常简单的应用程序我或多或少地基于Luminus 留言簿教程,我只是想在http://localhost:3000/userscreate-user!测试表单。每当我提交表单时,我都会得到一些 It's not specific to 的变体。无论我发送什么参数,我都会得到或类似的东西。Parameter Mismatch: :username parameter data not found.:username:first_name parameter data not found.

我看到的错误页面

这是扩展的参数部分: 它说我要发送的参数

我已经完成了printlnmyapp.routes.home/create-user!我知道参数似乎都在那里。我不确定如何进一步追踪它。我会很感激任何关于调试的建议,如果有人看到我做错了什么,那将非常有帮助。

堆栈跟踪:

0 投票
1 回答
841 浏览

authentication - 如何让 Swagger UI 让我提供身份验证标头?

我使用 Luminus,连同 reitit 和 swagger-ui 来生成一个页面,让我试用我的 Luminus API。我可以输入我的 API 请求正文并提交以测试我的 API。 我的招摇 UI 的快照 现在我已经使用好友添加了身份验证,并且我的 API 需要在请求的标头中传递一个令牌,否则它会拒绝该请求,因为它是被禁止的。
我试图让“授权”标题字段神奇地出现在我的 UI 中,以便我可以输入 JWT 令牌字符串并测试我的 API。对于使用 reitit 创建 API 的任何人来说,这一定是一个非常普遍的要求,但我不知道该怎么做。我四处寻找,发现了这个 reitit 问题页面,其中包括文本......

标头参数被声明为小写字符串 {:headers {"authorization" string?}},这将与 Ring 提供给我们的完全匹配。(仍然可以使用 HTTP-Header-Case 获取文档。)

...并建议以下设置...

这样做并没有让我通过任何方式进行身份验证。所以,我找到了这个讨论并通过在上述路线中添加以下内容来编辑我的路线:summary 和 :parameters...

添加之后,我得到了这个...... 在此处输入图像描述

...看起来我在正确的轨道上,但我仍然无法在 auth 标头中输入我的令牌。

正如我所说,一切都在使用 curl ......只是那个招摇并没有显示任何添加身份验证头的方法。有人知道如何让 Swagger UI 在这种情况下发挥作用吗?

如果 reitit 不支持这一点,那么人们如何使用 Swagger UI 来处理经过身份验证的请求?

任何帮助,将不胜感激!

0 投票
1 回答
73 浏览

clojure - 在clojure中创建多线程

我有这个代码:

我想进行 get 调用([1])并且我不想等待回调(我不会使用回调),但是,我不想等待来自该调用的响应以重定向([2])页面,我尝试这样做(使用线程),但它不能正常工作。

简而言之:我想进行 GET 调用[1]并在调用之后调用重定向函数[2],但我不能等待 GET 调用响应。(我不知道这是否会使用线程解决)

0 投票
1 回答
77 浏览

clojure - 变量未在包含的 selmer 模板内展开

我有一个顶级模板,我想在 for 循环中使用“片段”模板,但我无法传入变量值:

item然后name在 fragment.html 模板中使用:

虽然name参数被正确扩展(它的值在父模板中被硬编码),但item参数不是(它的值按原样传入)。

我需要为此使用不同的语法还是不支持它?

0 投票
0 回答
89 浏览

sqlite - 无法使用 sqlite 和 clojurescript 支持创建 luminus 项目

我正在尝试使用以下命令创建一个支持 sqlite 和 cljs 的 luminus 项目:

但我一直收到此错误消息:

我找不到任何解决方案。有什么建议么?

0 投票
0 回答
57 浏览

sqlite - 运行 lein 迁移时未找到数据库

我正在使用 luminus 用 sqlite 构建网页。当我尝试迁移(lein run migrate)时,我收到以下消息:

我的 dev-config.edn:

和我的迁移文件:

有什么建议么?