問題タブ [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 - Clojure + Compojure + Ring Web アプリケーションで既存の Java サーブレットとフィルターを再利用/含める方法は?
gzip サーブレット フィルター、ファイル アップロード サーブレットなどの Java EE アーティファクトがたくさんありますが、これらは問題なく、Compojure と Ring に基づく Clojure Web アプリケーションで再利用したいと考えています。
これは可能ですか?もしそうなら、どのように?
macros - このマクロをclojureで作成するにはどうすればよいですか?
私はこの関数を持っています:
しかし、私は同じ名前の関数に解決されるページのリストを変更し続けており、次のように記述できるようにしたいと思います。
(def-handler善悪ニュートラル)
代わりは:
しかし、私は立ち往生しています。これまでの私のベストショットは次のようになります。
しかし、生成された呼び出しの要求はgensymではないため、完全には機能しません。そこでgensymを取得する方法がわかりません。
これは、新しいgensymが作成されたことに気付くまで、有望に見えました。
clojure - Lein-Ringuberwarにプロパティを含める方法
コマンドを使用して、JBossでLeiningenプロジェクトのテストデプロイを実行しようとしていますlein ring uberwar
。プロパティファイルを読み込もうとするまで、これで大成功を収めていました。
プロパティファイルをマップに読み込む関数があります。
そして、私はそれを次のように使用します:
「application.properties」は、プロジェクトディレクトリ内のファイルの名前です。すべてがでうまく機能しlein run
ますが、スタンドアロンのwarを作成してJBossにcpすると、これはスタックトレースです。
:war-resources-pathと呼ばれる設定可能なdefprojectキーがあることに気付いたので、プロパティファイルを$ PROJECT_ROOT / war-resourcesディレクトリ(デフォルト)に配置しましたが、まだ運がありません。
誰かがを使用してプロパティファイルから読み取るための最良の方法を知っていますlein ring uberwar
か?
clojure - ring-json の wrap-json-response ミドルウェアと compojure は text/plain? を返します。
Compojure アプリ内で ring-json の wrap-json-response ミドルウェアを使用しようとしています。のようなマップを返す単純な GET ハンドラーがあり{:foo 1}
、URL にヒットすると、リングはtext/plain
空の応答本文で応答します。JSONバージョンのマップで応答できないようです。
ここに私のハンドラコードがあります:
ルート ハンドラー関数は文字どおりマップを返すだけなので、そのコードは単純なので省略することもできます。Compojure ルート ハンドラーからマップを返すことが問題である場合、おそらくそれでおしまいでしょうか?
clojure - Ring ミドルウェアがリクエストで :params マップを認識しないのはなぜですか?
私はRing
ミドルウェアを書いており、 Compojure
. ミドルウェアで :params マップを調べて、特定のキーがユーザーによって提供されたかどうかを確認します。ただし、私のミドルウェア関数では、リクエスト マップに :params マップが含まれていません。最後のリクエスト ハンドラーには、:params
マップがあります。カスタムミドルウェアの前にマップが設定されていないと考えてい:params
ますが、実際に設定する方法がわかりません。
何か案は?
上は私の handler.clj ファイルで、下はミドルウェアそのものです。
layout - リング/桟橋での自動コードリロード
Ring / JettyをClojureで使用して、コードに変更を加えるときは、JVM全体をリロードする必要があります。
Jettyをコードの変更と非同期に保つ方法はありますか?それで、ブラウザーウィンドウを更新して、すぐに変更を取得できますか?
具体的には、HTML解析にHiccupを使用していますが、これは主に、作成しているレイアウトの変更です。
レイアウトの変更が自動的にコンパイルされ、更新時にブラウザで利用できるようになれば、大幅な時間の節約になります。
誰かがそれについて何か情報を持っていますか?解決策はありますか?
clojure - compojureでring.middleware.json-paramsを使用しようとしています
私はClojure、leiningen、およびjavaツールチェーンに不慣れです(ただし、lisp、関数型プログラミング、ソフトウェア一般には不慣れです)。CompojureでいくつかのRESTfulWebサービスをブートストラップしようとしています。
の指示に従って、compojureを使い始めるのに問題はありませんでした。
現在、古くなったWebサイトから機能を段階的に追加しようとしています。
leiningen
上記の最初のリンクから作業中のプロジェクトから始めます(これは経由で機能しlein ring start
、project.cljに1行追加します
それから私は再実行lein deps
し、たくさんのものをダウンロードします。プロジェクトはまだ機能しています。今私は1行を追加しhandler.clj
ます:
そして今、私は
私はツールチェーンに完全に精通しているので、クラスパスを設定または検査する方法やjson_params
、leiningenによってデポジットされた場所を見つける方法、さらにはクラスファイル内を調べて名前を見つける方法さえわかりません。 。
この問題の具体的な解決策に加えて、初心者向けのポインタをいただければ幸いです。将来、このような簡単な問題を自分で解決できるかもしれません。
clojure - How to test session state with Ring?
I'm trying out Clojure web development with Ring + Compojure + lib-noir, and I can't figure out how to test the session state.
clojure - 同じサーバーで複数の Ring アプリを実行するにはどうすればよいですか?
Ring (および Clojure サーバー側プログラミング全般) は初めてです。「開発モード」でうまく機能する Ring ベースのアプリがあります。つまり、リッスンでき、localhost:3000
適切に応答します。このアプリのデプロイの一環として、アプリのベース URL を のようなものに変更したいと考えていますmyserver.com/analytics/v1
。これにより、たとえば、以前に行ったリクエストが にlocalhost:3000/foo
移動するようになりmyserver.com/analytics/v1/foo
ます。
ここで 2 つの密接に関連する質問があると思います: サーバーのルート URL ではない特定の URL でのみリッスンするように Ring/Jetty に指示するにはどうすればよいですか? myserver.com/analytics/v2
また、最初のアプリのダウンタイムなしで別のアプリ (たとえば、) を追加できるように、これをどのように設定できますか? myserver.com/
要求をリッスンし、必要に応じて他のアプリにルーティングする別の Ring アプリを作成する必要がありますか?