問題タブ [compojure]

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 に答える
671 参照

clojure - compojure を使用して複数のチェックボックスから値を解析する

提供された URL を使用して、他の Web サイトから取得した複数の値を表示できる、小さな compojure Web アプリケーションを作成しました。現時点では、この URL は関数の 1 つにハード コードされています。テキスト フィールドとチェックボックスの値に基づいて動的 URL を作成する機能を追加したいと考えています。

これは私のページがどのように見えるかです:

ルートは次のとおりです。

現時点では、(create-url)関数 (文字列を返す) のヘルプが必要です。検索に必須のすべてのフィールド (1 つのテキスト フィールドと 3 つのチェックボックス) をフェッチし、それらから値を解析して (連結された) URL - チェックボックスの場合、チェックされている場合、チェック セクションの値は 0 ではなく 1 になり、チェックされていない場合は 0 のままになります (check=100、または 2 つのチェック ボックスが選択されている場合は 010, 011)。テキスト フィールドの場合、tfield=userinputtext です。

EDIT私は.NetおよびJava開発者として多くの時間を費やしました.compojureのこの部分は私にとって完全な謎です. これは私が関数で達成したいこと(create-url)です(OOスタイルで書かれた疑似コード):

この擬似コードがどのように見えるかについてお詫び申し上げますが、これは私が学びたい部分です: フォームからデータをスクープして解析するにはどうすればよいですか (この場合、フォームフィールドから文字列に値を添付したいと思います)

誰でもこれで私を助けることができますか?

0 投票する
6 に答える
9807 参照

clojure - 異なるミドルウェアでルートを構成する

現在、Compojure (および Ring と関連するミドルウェア) を使用して Clojure で API を作成しています。

ルートに応じて異なる認証コードを適用しようとしています。次のコードを検討してください。

wrap-basic-authentication実際にはルートをラップするため、ラップされたルートに関係なく試行されるため、これは期待どおりに機能しません。具体的には、リクエストを にルーティングする必要がある場合でもadmin-routesuser-auth?が試行されます (そして失敗します)。

私はいくつかのルートを共通のベース パスの下にルートcontextするために使用することにしましたが、これはかなりの制約です (以下のコードは単にアイデアを説明するためのものであり、機能しない可能性があります)。

defroutes何かが欠けているのか、それとも共通の基本パスを使用せずに(理想的には何もない)自分に制約を与えずに欲しいものを達成する方法があるのか​​ どうか疑問に思っています.

0 投票する
1 に答える
179 参照

clojure - 複数のノワールサーバーを実行している場合のロードビュー

noir を使用して 3 つのサーバーを起動する実験を行っています (それぞれがアプリケーションの異なる側面を処理します)。開発中に 1 つのアプリケーション内で 3 つのサーバーすべてを実行し、展開のためにプロジェクトを 3 つの異なるアプリケーションに簡単に分離できるように、これを実行しようとしています。

必要な jetty サーバーを使用noir.server/startして実行することは問題ありません。noir.server/stop

私が理解しようとしているのはload-views、URI の競合が正しいdefpage.

0 投票する
1 に答える
496 参照

clojure - 相対リンクと非ルート コンテキスト パスを使用して Clojure Web アプリケーションを Jetty にデプロイするとリンクが壊れる

私は Clojure で Web アプリケーションを作成する実験を行ってきましたが、これまでは非常に簡単でした。私は Chas Emerick の優れたスクリーンキャストに従って clojureを開始し、URL 短縮サービスをすぐに実行できるようにしました。次に、それを展開できるようにしたかったのですが、それが問題の始まりでした。

開発で実行するか、ルート Web アプリケーションとして Jetty にデプロイすると、すべて問題ありませんが、コンテキスト パスを使用してデプロイすると、うまくいきません。というか、ほとんど効きます。すべての Compojure ルートは引き続き機能FORMしますが、HTML ファイル内のアクション リンクが壊れており、404 が表示されます。

これは Compojure ルートのセットアップです。

ホームページ テンプレートの HTML は次のとおりです。

問題はaction="shorten"URLです。/exampleフォーム送信をトリガーするまで、すべてのコンテキストパスを使用して Jetty にデプロイすると、正常に動作します。localhost:8080/shorten次に、Jetty は、それが相対パスとしてではなく絶対パスとして扱われていることを意味する (私が思うに)見つけられないと不平を言います。

だから、私の質問は次のとおりです。これを修正するにはどうすればよいですか?アクション リンクでフル パスを指定することもできると思いますが、それでは柔軟性がなくなり、開発中のサーブレットの実行が難しくなります。これから抜け出す方法を設定する方法はありますか? ~/または、正しいことを行うだけの魔法の URL プレフィックス (Razor など) はありますか?

0 投票する
2 に答える
1309 参照

clojure - Clojure: Webbit + リング

環境

http://blog.jayfields.com/2011/02/clojure-web-socket-introduction.htmlが機能しました。

リング+コンポジュールも機能しています。

質問:

リングを使いたいのですが…どうにかして…webbitで可能でしょうか?

ありがとう!

0 投票する
2 に答える
1459 参照

clojure - デプロイ後の ring/compjure アプリケーションの起動時に関数を実行する

重複の可能性:
リング プロジェクトで任意のスタートアップ関数を実行するには?

シンプルなAPIを構築するために、compojureでclojureリングミドルウェアを使用しています。私は戦争としてアプリを頻繁に展開します。

これはうまく機能しますが、アプリの起動時に 1 回限りの初期化コードを実行する方法を検討しています。「lein ring server」を実行すると問題なく動作しますが、戦争として展開すると、最初のリクエストがサーバーにヒットしたとき(つまり遅延)にのみ実行されるようです。(AOTを使用せずに)怠惰にならないようにする方法はありますか?またはリングミドルウェアのライフサイクルにフックするより良い方法はありますか?

0 投票する
1 に答える
682 参照

clojure - 複数のパラメータを持つcompojureルート

複数のパラメーターを含む複合ルートを定義することは可能ですか?

すなわち:

0 投票する
2 に答える
2011 参照

clojure - Clojure で compojure リクエストを検証するときに文字列から整数を解析する

リクエストを解析し、数値のパラメータを取得する必要がある compojure ベースのアプリがあります。実際にリクエストを処理する前に、パラメータが存在し、それらが数値であることを確認できるようにしたいと考えています。これは私がこれまでに持っているものです:

文字列 -> 数値変換を行うより良い方法はありますか?

リクエストの検証を行うためのより良い方法はありますか?

0 投票する
2 に答える
356 参照

model-view-controller - defrouteをwebnoirで機能させるのに問題があります

だから、私はclojure n00bであり、私が構築しているプロジェクトのルートを取得しようとすると、何かが足りません。

循環依存関係にいくつか問題がありました。Djangoを使用した後は、で行われているようにコードベース全体にペッパーを付けるよりも、ルートをすべて1か所で定義する方がはるかに良いと思いますdefpage

コードに:

これは私のcore.cljファイルです:

次に、ルートファイルに次のように表示されます。

すべてが404であり、ここからどこに行くべきかさえわかりません。でサイトを利用することはできましたがdefpage、ルート数が増えるにつれ、醜くて拡張性がなくなったようです。

それで

  • 私はここで何が間違っているのですか?基盤となるcompojure/clojure/ringレイヤーへの洞察は素晴らしいでしょう
  • これがルートを定義する最良の方法ではない場合、何ですか?
  • githubに大きなclj-noirサイトの良い例はありますか?(私のgoogle-fuは私に失敗しました。)
0 投票する
1 に答える
331 参照

clojure - Compojureアプリがwith-redefsでうまく機能しない

私はCompojureアプリケーションを作成していて、clj-webdriverそれをグラフィカルにテストするために使用しています。with-redefs永続性からデータを引き出して固定値を返す関数をモックアウトしようとしていますが、関数の上書きを無視しています。varsの観点からは機能することはわかってwith-redefsいますが、まだ機能していません。

project.clj関連の部分:

handler.clj:

log-controller.clj:

永続性.clj

そして最後に、私のグラフィカルテスト-オーバーライドしようとしてmikes-log失敗します:

one-week-snippetいくつかのサンプルデータを返す関数はどこにありますか。(defn start-server [](run-jetty(var app){:port 3000:join?false}))