問題タブ [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.
google-app-engine - Clojure を使用して GAE アプリを実行するにはどうすればよいですか?
Clojure と Compojure を使用して、Eclipse または Idea を使用して GAE でアプリを開発したいのですが、emacs は悪い考えではありません:P
では、これを行うための最良の方法はどれですか? leiningen を使いたいとは思わない。なぜなら、学習曲線を通過すれば Maven は非常に強力になると信じているからだ。最高の情報源です。
これを行う必要がある場合、どのようなアプローチをとりますか? または、あなたは私に何を勧めますか?
このプラグインは大丈夫ですか-> http://code.google.com/p/maven-gae-plugin/ そのプラグインを使用すれば、pom.xml に clojure.jar を含めることができ、基本的には準備ができていますよね? IntelliJ IDEA に似たものはありますか?
他の提案はありますか?そして、これを行うあなたの方法はどれですか?
clojure - 複合ルートの背後にある「大きなアイデア」とは何ですか?
私はClojureを初めて使用し、Compojureを使用して基本的なWebアプリケーションを作成しています。しかし、私はCompojureのdefroutes
構文で壁にぶつかっています。その背後にある「方法」と「理由」の両方を理解する必要があると思います。
リングスタイルのアプリケーションはHTTPリクエストマップで始まり、ブラウザに返送されるレスポンスマップに変換されるまで、一連のミドルウェア関数を介してリクエストを渡すようです。このスタイルは開発者にとって「低レベル」であるように思われるため、Compojureのようなツールが必要です。他のソフトウェアエコシステム、特にPythonのWSGIでも、より多くの抽象化が必要であることがわかります。
問題は、Compojureのアプローチが理解できないことです。defroutes
次のS式を見てみましょう。
これらすべてを理解するための鍵は、いくつかのマクロブードゥーの中にあることを私は知っていますが、私はマクロを完全には理解していません(まだ)。私は長い間ソースを見つめてきましたdefroutes
が、それを取得しないでください!何が起きてる?「大きなアイデア」を理解することは、おそらくこれらの特定の質問に答えるのに役立ちます。
- ルーティングされた関数(関数など)内からリング環境にアクセスするにはどうすればよい
workbench
ですか?たとえば、HTTP_ACCEPTヘッダーまたはリクエスト/ミドルウェアの他の部分にアクセスしたいとしますか? - 破壊(
{form-params :form-params}
)との取引は何ですか?破壊するときに利用できるキーワードは何ですか?
私はClojureが本当に好きですが、とても困惑しています!
html - しゃっくりのdivの色を変更する
ヒカップでdivの背景色を設定する方法はありますか?これが私がこれまでに試したことですが、結果はありません。
[:div {:background-color "#003366"} (escape-html rest)]
htmlで、私<div background-color="#663366">
が信じていないものが色の正しい形式であることがわかります。
しゃっくりでこれを行う方法はありますか?
google-app-engine - GoogleAppEngineからのhttpリクエスト
Google App Engineウェブアプリからhttpリクエストを作成しようとしていますが、ホワイトリストに登録されている唯一のクラスであるURLConnectionを使用する必要があることがわかりました。対応するClojureライブラリはclojure.contrib.http.agentであり、私のコードは次のとおりです。
これは私の開発環境では正常に機能します-ブラウザはexample.comのテキストを表示します。しかし、Googleの開発アプリサーバーでテストすると、次のようになります。
ページをロードするとハングします。エラーなどはありません。何が起こっているのか考えてみませんか?
clojure - Compojure/Ring でセッションをどのように使用しますか?
私は Compojure を使用して Web アプリケーションを開発しています。セッション データの保存と取得の小さくて完全な例を教えていただければ幸いです。
事前に感謝します、ジェームズ。
clojure - CompojureはURLからHTTPリクエストパラメータをバインドしますが、POSTフォームからはバインドしません
Compojureは、POSTフォームのフィールドをバインドしません。これは私のルート定義です:
フィールドを含むフォームを投稿すると、| {} |が表示されます。つまり、パラメーターはありません。ちなみに、http:// localhost / query?param1 = value1に移動すると、paramsは空ではなく、値はサーバーコンソールに出力されます。
フォームフィールドに別のバインディングはありますか?
clojure - Compojure ルートの問題
ルートが次のように定義された小さな構成サイトがあります。
プロジェクトを読み込もうとすると、次のエラーが発生します。
java.lang.Exception: Unsupported binding form: (or (serve-file (params :*)) :next)
私は何を間違っていますか?私はこれのほとんどをインターネット上の散らばった例から取り上げました.
空のベクターを追加した後、次のエラーが発生します。
java.lang.Exception: Unable to resolve symbol: serve-file in this context
clojure - Compojure を使用して作業ディレクトリを temp に変更する MYOB ODBC ドライバ
ジョブカード データベースから MYOB に請求書をインポートするために使用する小さな内部 Web アプリケーションを作成しました。私は Clojure と Compojure を使用してこれを作成しましたが、実際にはかなりうまく機能し、私にとっては良い学習課題でもありました。
しかし、問題が発生しました。請求書のインポートが成功した後、jetty サーバーが静的 CSS ファイルを提供しなくなったようです。
デルートは次のとおりです。
(ファイルはただの css/default.css で、最初のインポートの前に完全に機能します。)
今、私は問題を発見したと思います.MYOB ODBCドライバーがJettyサーバー(および私のREPL)の作業ディレクトリを変更しているようです.REPLに次のように入力すると:
一時ファイル ディレクトリのリストが表示され、CSS ファイルが見つからなくなった理由が説明されます。
奇妙なことは、私がそうするなら:
アプリケーションの正しいディレクトリを取得します。
MYOB ODBC ドライバーのこの癖を回避できる何か (絶対パスでのコーディング以外) を知っている人はいますか?
起動時に絶対パスを取得して保存できると思いますが、それはuberjarで機能しますか?
編集: JVM の制限により修正できないようですか?
clojure - compojureを使用してデータベースからバイナリファイルを提供する
次のルート定義があります。
この例では、リクエスト/
はチャームのように機能し、期待値を返しますHello World 2
。
get-images-responseメソッドは次のように定義されます。
私は404を取得しているので、バイナリファイルの提供はまだ完全には機能していません。なぜ何かアイデアはありますか?
編集:わかりました。この問題は、で画像がリクエストされているという事実に関連してい/images/name.jpg
ます。.jpg
ハンドラーを削除するとすぐに呼び出されます。したがって、問題は、拡張機能以外のものにどのように一致させるかということです。
clojure - nginxリバースプロキシから転送されたリクエストに一意のIDを追加します
nginxをリバースプロキシとして実行し、Compojureを実行しているClojureアプリケーションにリクエストを転送します。これは、Jettyをラップアラウンドし、アプリケーションにWebリクエストを処理する機能を提供するライブラリです。
現在、nginxとClojureアプリケーションの両方によって生成されたログをキャプチャしています(log4jを介してsyslogに)。ただし、nginxログのエントリをClojureアプリケーションのsyslog出力のエントリと一致させることはできません。
Clojureアプリにアップストリームで送信されるリクエストを変更して、ある種のIDを含める方法を見つける必要があります。これは整数、UUIDなどです。
これを達成するための最善の方法について何か提案はありますか?
ご協力いただきありがとうございます!