問題タブ [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.
clojure - Compojure ルートでパラメータ情報が失われる
私のコード:
ファイルをreplにロードしてこのコマンドを実行すると、paramsが空白のようです:
私は何を間違っていますか?クエリ文字列を取得する必要がありますが、params マップは常に空です..
clojure - clojure/compojure/hiccup NullPointerException
私が持っているスタック トレースには、コードへの参照が含まれていません。ここで何が間違っているのかを見つける方法がわかりません:
これは、フォームの送信後に発生します。コントローラーはレコードをデータベースに書き込み、ページにリダイレクトします。
スタック トレースで問題が発生していますが、ページのレンダリングは行われていません。また、ブラウザはリダイレクトされたページではなく元のページを指しているため、リダイレクトは決して起こらないと考えています。
アイデア?
編集:
いくつかのprintlnで、conjにclojureqlを呼び出しているモデル/作成呼び出しまで追跡しました! 新しい記録。最初の println はコンソール ウィンドウに表示されますが、2 番目は表示されません。
clojure - Compojure ではデフォルトで / に index.html を提供します
index.html
誰かが要求したときに提供したいという静的ファイルがあります/
。通常、Web サーバーはデフォルトでこれを行いますが、Compojure は行いません。index.html
誰かが要求したときにCompojure を提供するにはどうすればよい/
ですか?
静的ディレクトリに使用しているコードは次のとおりです。
jquery - jqueryでjsonオブジェクトを送信しますが、compojureでnilを受信します
私は(jquery postを使用して)javascriptからcompojureにjsonを送信しようとしています。私が間違っているという単純なことがあると確信しています。私のjavascriptファイル(全体)は次のようになります:
私のclojureサーバーは次のようになります:
ページをロードすると、取得する予定です
取得:jqueryからfoo
代わりに私は得る
取得:jqueryからnil
何が起こっている?
clojure - Clojure Ring ミドルウェアを正しい順序で配置する
Clojure サーバーのミドルウェアに問題があります。私のアプリには次の要件があります。
一部のルートは問題なくアクセスできるはずです。他のものは基本認証を必要とするため、すべてのハンドラー関数の前に位置し、要求が検証されることを確認する認証関数が必要です。これには ring-basic-authentication ハンドラーを使用してきました。特に、パブリック ルートとプライベート ルートを分離する方法についての説明です。
ただし、
Authorization:
ヘッダーで送信されたパラメーターをルートコントローラーで使用できるようにしたいです。このために、リクエストのディクショナリに変数を配置する Compojure のsite
関数を使用してきました(たとえば、 Compojure POST リクエストでフォーム パラメータが見つからないを参照してください) 。compojure.handler
:params
ただし、401 認証とパラメーターの両方を同時に機能させることはできないようです。私がこれを試してみると:
認証変数はauthenticated?
関数内でアクセスできますが、ルートではアクセスできません。
明らかに、これは非常に一般的な例ではありませんが、私は本当に自分の車輪を回転させ、ミドルウェアの順序をランダムに変更し、うまくいくことを望んでいるように感じます. 私の特定の例と、物事を正しく実行するためにミドルウェアをラップする方法の詳細について、いくつかの助けをいただければ幸いです。
ありがとう、ケビン
clojure - Compojure:クエリパラメータをマッピングする方法
次のマッピングのいずれかをマッピングhttp://mysite.org/add?http://sitetoadd.com
またはhttp://mysite.org/add?u=http://sitetoadd.com
しかし、それは失敗するだけで、理由はわかりません。一方、これは機能します。
しかし、URLを渡す必要があり、 OKのhttp://mysite.org/add/http://sitetoadd.com
間は無効であるため、使用できません。http://mysite.org/add?http://sitetoadd.com is
編集:ダンプrequest
私はparamsが空であることを見ました。POSTパラメータとGETパラメータが含まれると思いましたが、渡すパラメータを見つけることができるのは:query-string( "u = asd")だけです。クエリ文字列を解析するにはミドルウェアが必要なようです。ちなみに、私の質問はじっとしている。
clojure - Compojure:生産中のラインリング?
人々は、Compojureアプリケーションを簡単にデプロイするためにラインリングを使用することを提案しているようです。それは単に開発のためのものではありませんか?私は、lein-ringで実行されている同じアプリとuberjarを使用してleiningenでパックされた同じアプリのベンチマークを行いました(java -jarで実行され、ring-jettyが含まれています)。
驚いたことに、ラインリングを使用するとパフォーマンスが少し向上します。私は何かが足りないのですか?
どうすればlein-ringを使い続けることができますが、例外が発生した場合にスタックトレースを出力したり、変更されたファイルをチェックしたりすることは避けられますか?
ありがとう
clojure - ring/compojure を使用した静的ファイルの提供 - 戦争から
リング(およびlein-ringツール)を使用すると、開発中にドキュメントに従って「リソース」などから静的ファイルを提供できます-ただし、lien uberwarを介してパッケージ化すると、作成方法がわかりませんコンテナで実行するときにこれらのファイルを提供します。wrap-resource または :resource-path の設定で競合するドキュメントが表示されますが、どれも機能していないようです。
tomcat - Compojure:ファイルシステムにアクセス
これは私のproject.cljファイルです:
そしてこれは私のルーティング:
いくつかのWeb静的ファイルが/resources/public
あり、それらにアクセスできます。コードでは、とにあるファイルシステム上のいくつかのファイルにもアクセスする必要があり/resources/data
ます/resources/tpl
。lein ring
サーバーまたはを使用するlein run
と、次の呼び出しが正常に機能します
しかし、lein uberwar
Tomcatを使用してアプリケーションをパックしてデプロイすると、失敗し、FileNotFoundExceptionが発生します。おそらくこれは、leinでは現在の作業ディレクトリがプロジェクトルートであり、TomcatではTomcatのbinディレクトリであるためです。
たとえば、「resources / data / data.dat」がTomcatで機能しないか、「data / data.dat」が開発で機能しないため/resources/data/data.dat
、戦争に巻き込まれています。/data/data.dat
ちなみに、Compojureでこれを管理する適切な方法は何ですか?ありがとう。