有一段时间我一直在运行lein figwheel来启动我的应用程序。我使用luminus模板生成了这个项目。然而,最近当我连接到数据库时,我发现lein figwheel不允许我连接到数据库。我假设这是因为它没有初始化应用程序。这很奇怪,因为它将重新加载我的普通clj文件没有任何问题。
但是,如果我只使用lein run,那么我就有了数据库连接。
在四处转转之后,我重读了Luminus文档,它说我需要同时运行这两种方法。这就是我非常困惑的地方。lein run打开一个端口到3000,而figwheel打开一个端口到3449。就像我说的,第一个让我连接到数据库,另一个让我自动构建。我要同时连接两个端口吗?那么,要同时获得这两个世界,我错过了什么步骤呢?
发布于 2016-06-08 02:25:20
Harley在对另一个答案的评论中提到了这一点,但我想保证这一点。首先,您可以随心所欲地运行您的服务器(我从repl启动,但您也可以使用lein run)。然后使用浏览器导航到您选择运行的任何端口。然后在另一个终端上运行lein figwheel,它就会连接起来。
发布于 2015-12-21 01:26:14
我也是,从来没有同时做过这两件事。然而,我把它们分开来做,不同的端口处理不同的“服务”。端口3000是http端口。如果你是从一个luminus模板构建的,那么你可能正在构建一个网站。因此,请使用您的浏览器连接到3000。
端口3449是用于将更改推送到浏览器的web套接字端口。因此,您启动了一个命令行lein figwheel,它将查找您的3449端口来与浏览器进行对话。现在请注意,此命令行既是repl程序又是监视程序。当你对源码进行修改时,figwheel会重新编译你的修改,并将其发送到3449处的页面。您还可以通过更改repl的名称空间(即in-ns)来执行repl中的代码。
所以,两个不同的端口,两个不同的协议。端口3000向浏览器返回什么?嗯,这取决于你的服务器,你告诉它的任何页面。然而,3449就是它默认的型号。
真正的问题是如何让figwheel连接到浏览器中的现有页面,而不是通过figwheel启动。我想我已经看到有人在你的页面中嵌入了一个JavaScript函数,它与figwheel对话/收听。
https://stackoverflow.com/questions/34366073
复制相似问题