gpt4 book ai didi

clojure - 网络连接 REPL 与 leiningen/ring/compojure/luminus

转载 作者:行者123 更新时间:2023-12-01 12:37:50 27 4
gpt4 key购买 nike

我正在运行一个带有 luminus web 框架的服务器,它使用 ring/compojure,我希望能够使用 clojure repl 连接到我的代码。我知道有一个代表网络 repl 的 nrepl 服务器,你可以通过以下方式连接到它:`lein repl :connect user@host:port (或一些不同的协议(protocol),我试过一些事情)。

repl.clj 中的以下代码是在您使用 `lein new luminus [project-name] 自动生成一个 luminus 项目时创建的(实际上我添加了附加一个所需的 browser-repl 片段clojurescript repl)。

(ns sophia-site.repl
(:require [cemerick.piggieback :as pig]
[weasel.repl.websocket])
(:use sophia-site.handler
ring.server.standalone
[ring.middleware file-info file]))

(defn browser-repl []
(pig/cljs-repl :repl-env
(weasel.repl.websocket/repl-env :ip "localhost" :port 9001)))

(defonce server (atom nil))

(defn get-handler []
;; #'app expands to (var app) so that when we reload our code,
;; the server is forced to re-resolve the symbol in the var
;; rather than having its own copy. When the root binding
;; changes, the server picks it up without having to restart.
(-> #'app
; Makes static assets in $PROJECT_DIR/resources/public/ available.
(wrap-file "resources")
; Content-Type, Content-Length, and Last Modified headers for files in body
(wrap-file-info)))

(defn start-server
"used for starting the server in development mode from REPL"
[& [port]]
(let [port (if port (Integer/parseInt port) 8080)]
(reset! server
(serve (get-handler)
{:port port
:init init
:auto-reload? true
:destroy destroy
:join? false}))
(println (str "You can view the site at http://some-ip:" port))))

(defn stop-server []
(.stop @server)
(reset! server nil))

我在 lein repl :connect ... 上没有成功

  1. 如何将 clojure repl 附加到我在服务器上的代码?

感谢大家的帮助

最佳答案

在您的项目根目录中,您应该运行 lein repl,连接后您可以在 repl 提示符下输入 (start-server)

您的服务器和浏览器选项卡将启动,您从中调用 (start-server) 的 repl 提示可用于与正在运行的应用程序交互。

为了防止启动浏览器选项卡,您需要添加 :open-browser? false 传递给 repl.clj 中的 serve 的选项映射:

(serve (get-handler)
{:port port
:init init
:auto-reload? true
:destroy destroy
:open-browser? false
:join? false})

关于clojure - 网络连接 REPL 与 leiningen/ring/compojure/luminus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27989997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com