問題タブ [ring]
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.
clojure - 1 つの lein タスクで複数のリング サブプロジェクトを開始するにはどうすればよいですか?
次のような 3 つのサブプロジェクトを含むプロジェクトがあります ( lein-subを使用):
それぞれの内部に次のようなリング ハンドラーがあります。
今、私はそれぞれに行き、次のように入力します:
これは明らかに疲れます。私も試しました
これは機能するはずですが、最初のものを開始するだけで、プロセスがそれに参加します! おそらくそれを回避する方法はありますか?これが最も簡単なアプローチのようです。
その代わりに、これを行うための leiningen タスクを作成していますが、いくつかの問題が発生しています。leiningen.core.project/read を使用して、それぞれのプロジェクト ファイルを簡単に取得できますが、ここから、それぞれの project.clj ファイルのすべての依存関係とその他の設定を尊重する方法で各リング サーバーを起動するにはどうすればよいでしょうか?
何か案は?
ajax - 外部の http リクエストをブロックするには? (AJAX 呼び出しの保護)
post を使用してデータベースを更新したいのですが、手動で行う必要はありません。つまり、クライアントで AJAX を介してのみ可能にする必要があります。このシナリオで使用できるよく知られた暗号化トリックはありますか?
のデータベースに新しいユーザーを挿入するために GET 要求を発行しているとしますsite.com/adduser/<userid>
。誰かが偽のリクエストを発行して、私のデータベースを過密にする可能性があります。
clojure - uberwar をビルドするときに Lein Cyclic Dependency エラーが発生する理由は何ですか?
リングサーバーヘッドレスの構築 -- lein ring server-headless
-- しかし、war または uberwar を構築しようとすると、次のエラーが発生し、なぜこれが起こっているのかわかりません。
私の project.clj ファイルは次のとおりです。
を削除すると、:ring {:handler routes/start}
別の場所に NPE が作成されます。
project.clj に何かが欠けているのか、それとも特定のバージョンの lein がこのユース ケースで壊れているのかはわかりません。誰かが私のためにこれを明確にすることができますか?
clojure - 異なるミドルウェアでルートを構成する
現在、Compojure (および Ring と関連するミドルウェア) を使用して Clojure で API を作成しています。
ルートに応じて異なる認証コードを適用しようとしています。次のコードを検討してください。
wrap-basic-authentication
実際にはルートをラップするため、ラップされたルートに関係なく試行されるため、これは期待どおりに機能しません。具体的には、リクエストを にルーティングする必要がある場合でもadmin-routes
、user-auth?
が試行されます (そして失敗します)。
私はいくつかのルートを共通のベース パスの下にルートcontext
するために使用することにしましたが、これはかなりの制約です (以下のコードは単にアイデアを説明するためのものであり、機能しない可能性があります)。
defroutes
何かが欠けているのか、それとも共通の基本パスを使用せずに(理想的には何もない)自分に制約を与えずに欲しいものを達成する方法があるのか どうか疑問に思っています.
clojure - 複数のノワールサーバーを実行している場合のロードビュー
noir を使用して 3 つのサーバーを起動する実験を行っています (それぞれがアプリケーションの異なる側面を処理します)。開発中に 1 つのアプリケーション内で 3 つのサーバーすべてを実行し、展開のためにプロジェクトを 3 つの異なるアプリケーションに簡単に分離できるように、これを実行しようとしています。
必要な jetty サーバーを使用noir.server/start
して実行することは問題ありません。noir.server/stop
私が理解しようとしているのはload-views
、URI の競合が正しいdefpage
.
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 など) はありますか?
clojure - Clojure: Webbit + リング
環境
http://blog.jayfields.com/2011/02/clojure-web-socket-introduction.htmlが機能しました。
リング+コンポジュールも機能しています。
質問:
リングを使いたいのですが…どうにかして…webbitで可能でしょうか?
ありがとう!
clojure - リングから生のヘッダーを見る方法はありますか?
リングのパラメーターのハッシュマップを、ブラウザーとサーバーが通信に使用する元の応答ヘッダーと要求ヘッダーに変換する方法はありますか?
基本的に、リングが提供するハッシュマップ構造の代わりに、リングを使用して生のテキスト ヘッダーを生成および解析できるようにしたいと考えています。
リクエスト:
応答:
clojure - デプロイ後の ring/compjure アプリケーションの起動時に関数を実行する
重複の可能性:
リング プロジェクトで任意のスタートアップ関数を実行するには?
シンプルなAPIを構築するために、compojureでclojureリングミドルウェアを使用しています。私は戦争としてアプリを頻繁に展開します。
これはうまく機能しますが、アプリの起動時に 1 回限りの初期化コードを実行する方法を検討しています。「lein ring server」を実行すると問題なく動作しますが、戦争として展開すると、最初のリクエストがサーバーにヒットしたとき(つまり遅延)にのみ実行されるようです。(AOTを使用せずに)怠惰にならないようにする方法はありますか?またはリングミドルウェアのライフサイクルにフックするより良い方法はありますか?
clojure - Compojure、Hiccup、Ringを使用して複数のファイルをアップロードする
これは実際には、Compojure、Hiccup、Ringを使用してファイルをアップロードすることからの脱却です。
複数のタグがある場合:
ringを使用してすべてのファイルの値を取得するにはどうすればよいですか?