【问题标题】:How to run the backend server/code in re-frame template?如何在重新框架模板中运行后端服务器/代码?
【发布时间】:2021-02-16 15:28:07
【问题描述】:

使用lein re-frame template 我看到有一个-main 函数为位于clj/ 中的后端代码运行码头服务器。使用 emacs 我已经能够 cider-jack-in-cljs 并让前端在浏览器中运行,热重载工作,但我试图在 clj/ 中的 handler.clj 中添加路由到路由函数和一直无法弄清楚如何让事情的“后端”发挥作用。

我发现this 其他问题有点相关,但在这种情况下,用户只想知道为什么 clj/ 文件夹在那里,而不是如何运行该代码。到目前为止我还没有找到任何文档,非常感谢任何帮助。

PD:我知道不建议将后端和前端放在同一个项目/存储库中(我在上面链接的另一个问题中提到过),但我只想让一个简单的“第一个应用程序”首先工作和运行然后希望将后端放到另一个项目/存储库中。

【问题讨论】:

  • 将前端和后端保持在同一个项目/仓库中是完全可以的。大多数人都这样做,我什至建议这样做,因为它使代码共享更容易。只需将 lein 用于后端,将 shadow-cljs 用于前端。

标签: clojure backend clojurescript leiningen re-frame


【解决方案1】:

假设您使用 lein new re-frame myapp +handler 之类的内容创建了项目,启动服务器的代码位于文件 src/clj/myapp/server.clj

您可以打开文件并运行cider-jack-in-clj,它会询问您是要启动lein 还是shadow-cljs。因为它是一个 CLJ 文件,所以选择lein。 CIDER 启动后,您可以评估-main 函数(例如(-main))来启动服务器。

您可以在 http://localhost:3000 打开 URL,Jetty 将提供已由 shadow-cljs 编译的资源,因此您将看到与直接从 CLJS 查看其他端口相同的输出。

请注意,模板中的后端代码会启动 Jetty 服务器,但不会帮助重新加载后端。要查看如何为后端启用热重载,请查看https://github.com/ring-clojure/ring/wiki/Setup-for-development

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2019-01-24
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多