問題タブ [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 に答える
437 参照

clojure - Compojure ルートでパラメータ情報が失われる

私のコード:

ファイルをreplにロードしてこのコマンドを実行すると、paramsが空白のようです:

私は何を間違っていますか?クエリ文字列を取得する必要がありますが、params マップは常に空です..

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

clojure - clojure/compojure/hiccup NullPointerException

私が持っているスタック トレースには、コードへの参照が含まれていません。ここで何が間違っているのかを見つける方法がわかりません:

これは、フォームの送信後に発生します。コントローラーはレコードをデータベースに書き込み、ページにリダイレクトします。

スタック トレースで問題が発生していますが、ページのレンダリングは行われていません。また、ブラウザはリダイレクトされたページではなく元のページを指しているため、リダイレクトは決して起こらないと考えています。

アイデア?

編集:

いくつかのprintlnで、conjにclojureqlを呼び出しているモデル/作成呼び出しまで追跡しました! 新しい記録。最初の println はコンソール ウィンドウに表示されますが、2 番目は表示されません。

0 投票する
8 に答える
11201 参照

clojure - Compojure ではデフォルトで / に index.html を提供します

index.html誰かが要求したときに提供したいという静的ファイルがあります/。通常、Web サーバーはデフォルトでこれを行いますが、Compojure は行いません。index.html誰かが要求したときにCompojure を提供するにはどうすればよい/ですか?

静的ディレクトリに使用しているコードは次のとおりです。

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

jquery - jqueryでjsonオブジェクトを送信しますが、compojureでnilを受信します

私は(jquery postを使用して)javascriptからcompojureにjsonを送信しようとしています。私が間違っているという単純なことがあると確信しています。私のjavascriptファイル(全体)は次のようになります:

私のclojureサーバーは次のようになります:

ページをロードすると、取得する予定です

取得:jqueryからfoo

代わりに私は得る

取得:jqueryからnil

何が起こっている?

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

clojure - Clojure Ring ミドルウェアを正しい順序で配置する

Clojure サーバーのミドルウェアに問題があります。私のアプリには次の要件があります。

  • 一部のルートは問題なくアクセスできるはずです。他のものは基本認証を必要とするため、すべてのハンドラー関数の前に位置し、要求が検証されることを確認する認証関数が必要です。これには ring-basic-authentication ハンドラーを使用してきました。特に、パブリック ルートとプライベート ルートを分離する方法についての説明です。

  • ただし、Authorization:ヘッダーで送信されたパラメーターをルートコントローラーで使用できるようにしたいです。このために、リクエストのディクショナリに変数を配置する Compojure のsite関数を使用してきました(たとえば、 Compojure POST リクエストでフォーム パラメータが見つからないを参照してください) 。compojure.handler:params

ただし、401 認証とパラメーターの両方を同時に機能させることはできないようです。私がこれを試してみると:

認証変数はauthenticated?関数内でアクセスできますが、ルートではアクセスできません。

明らかに、これは非常に一般的な例ではありませんが、私は本当に自分の車輪を回転させ、ミドルウェアの順序をランダムに変更し、うまくいくことを望んでいるように感じます. 私の特定の例と、物事を正しく実行するためにミドルウェアをラップする方法の詳細について、いくつかの助けをいただければ幸いです。

ありがとう、ケビン

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

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")だけです。クエリ文字列を解析するにはミドルウェアが必要なようですちなみに、私の質問はじっとしている。

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

clojure - Compojure:生産中のラインリング?

人々は、Compojureアプリケーションを簡単にデプロイするためにラインリングを使用することを提案しているようです。それは単に開発のためのものではありませんか?私は、lein-ringで実行されている同じアプリとuberjarを使用してleiningenでパックされた同じアプリのベンチマークを行いました(java -jarで実行され、ring-jettyが含まれています)。

驚いたことに、ラインリングを使用するとパフォーマンスが少し向上します。私は何かが足りないのですか?

どうすればlein-ringを使い続けることができますが、例外が発生した場合にスタックトレースを出力したり、変更されたファイルをチェックしたりすることは避けられますか?

ありがとう

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

clojure - ring/compojure を使用した静的ファイルの提供 - 戦争から

リング(およびlein-ringツール)を使用すると、開発中にドキュメントに従って「リソース」などから静的ファイルを提供できます-ただし、lien uberwarを介してパッケージ化すると、作成方法がわかりませんコンテナで実行するときにこれらのファイルを提供します。wrap-resource または :resource-path の設定で競合するドキュメントが表示されますが、どれも機能していないようです。

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

tomcat - Compojure:ファイルシステムにアクセス

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

そしてこれは私のルーティング:

いくつかのWeb静的ファイルが/resources/publicあり、それらにアクセスできます。コードでは、とにあるファイルシステム上のいくつかのファイルにもアクセスする必要があり/resources/dataます/resources/tpllein ringサーバーまたはを使用するlein runと、次の呼び出しが正常に機能します

しかし、lein uberwarTomcatを使用してアプリケーションをパックしてデプロイすると、失敗し、FileNotFoundExceptionが発生します。おそらくこれは、leinでは現在の作業ディレクトリがプロジェクトルートであり、TomcatではTomcatのbinディレクトリであるためです。

たとえば、「resources / data / data.dat」がTomcatで機能しないか、「data / data.dat」が開発で機能しないため/resources/data/data.dat、戦争に巻き込まれています。/data/data.dat

ちなみに、Compojureでこれを管理する適切な方法は何ですか?ありがとう。