2

少しの間lein figwheel、アプリケーションを起動するために実行していました。luminus テンプレートを使用してプロジェクトを生成しました。lein figwheelただし、最近、データベースに接続すると、データベースに接続できないことがわかりました。これは、アプリを初期化していないためだと思います。プレーンなcljファイルを問題なくリロードするので、これは奇妙です。

ただし、使用するだけであればlein run、データベース接続があります。

いろいろ調べた後、Luminus のドキュメントを読み直したところ、両方を実行する必要があると書かれています。そして、これは私が非常に混乱しているところです。lein runfigwheel は 3000 へのポートを開き、figwheel は 3449 へのポートを開きます。前述のように、1 つ目はデータベースに接続し、もう 1 つ目は自動構築を行います。両方のポートに接続しますか? では、両方の世界を取得するには、どのステップが欠けていますか?

4

2 に答える 2

1

ハーレーは他の回答へのコメントでこれについて言及しましたが、私はそれを保証したかった. 最初に、好きなようにサーバーを実行します (私は repl から起動しますが、 を使用することもできますlein run)。次に、ブラウザを使用して、実行するために選択したポートに移動します。次にlein figwheel、別のターミナルで実行すると接続されます。

于 2016-06-07T18:25:20.357 に答える
0

私も、両方を同時にやったことがありません。ただし、私はそれらを別々に行っており、異なるポートが異なる「サービス」を処理しています。ポート 3000 は http ポートです。これを luminus テンプレートから構築した場合は、おそらく Web サイトを構築しています。ブラウザで 3000 に接続します。

ポート 3449 は、変更をブラウザーにプッシュするために figwheel が使用する Web ソケット ポートです。したがって、コマンドライン lein figwheel を起動すると、ブラウザと通信するために 3449 ポートが検索されます。このコマンドラインは、repl と監視プログラムの両方です。ソースに変更を加えると、figwheel は変更を再コンパイルし、3449 のページに送信します。repl の名前空間 (つまり in-ns) を変更することで、repl からコードを実行することもできます。

つまり、2 つの異なるポート、2 つの異なるプロトコルです。ポート 3000 はブラウザに何を返しますか? まあ、サーバーに応じて、どのページに指示しても構いません。一方、3449 は figwheel のデフォルト設定です。

本当の問題は、figwheel によって開始されたのではなく、ブラウザー内の既存のページに figwheel を接続する方法です。誰かがあなたのページに埋め込んだ JavaScript 関数を持っていて、それが figwheel に話しかけたり聞いたりしているのを見たことがあると思いました。

于 2015-12-20T17:26:13.973 に答える