問題タブ [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 - 口ひげ/リングで一般的なルートまたは後続のルートを定義する方法
基本的に同じ機能を指す2つの口ひげルートがありますhttp:// localhostとhttp:localhost/ルート-
どうすればいいですか-
- ["" "/"]のように、これらのルートの両方を一緒に指定することはできますか?
- あるルートから別のルートにリダイレクトすることは可能ですかex[""](リダイレクト "/")?
ありがとう、ムルタザ
clojure - 口ひげハンドラーでリクエストマップにアクセス/渡す方法
2つの入力を受け取るハンドラー関数を作成したいと思います。1つはURLから取得したパラメータで、もう1つは/name
クエリ文字列から取得したパラメータです。/name?x=3
ハンドラーが2つのパラメーターを期待しているため、上記は失敗しますが、私は1つしか渡していません。
リクエストマップを取得してハンドラーに渡すにはどうすればよいですか?
上記の場合のリクエストマップには、という名前のパラメータが含まれていx
ます。
clojure - リング アプリで異なるユーザー セッション間で状態を維持する方法
さまざまなブラウザ/ユーザー セッション間で、サーバー上でグローバルな状態を維持する必要があります。
ここでの私の仮定は、リクエストが入ったときに作成されるすべてのアトムなどは、そのリクエストに固有のものであるということです。応答が返されると、その状態はすべて破棄され、メモリが解放されます。間違っている場合は修正してください。
セッション ミドルウェアを使用すると、特定のセッションのリクエスト全体の状態をメモリ内に維持できます。
ただし、複数のユーザー セッションとリクエスト間で状態を維持するにはどうすればよいですか。可能であれば、外部に保存するために memcached / redis などの使用を避けたいと思います。メモリ自体でそれを達成することは可能ですか?
deployment - Clojure/Ring: 制御できない Java ビルド プロセスに clojure アプリを統合するにはどうすればよいですか?
私は独特のビルド状況を持っています。私はlein uberwar
自分のリング アプリケーションから戦争を構築し、beanstalk にデプロイするために使用しています。これはすべてうまくいっています。ここで、ビルドを管理する svn リポジトリにコードをプッシュする必要があることが要件として出てきますが、これは clojure について何も知りません (Java のみ)。それは巨大な官僚組織であり、その構築プロセスはすでに整っているためlein
、サーバーにインストールすることは現在問題外です. lein はフードの下で maven を使用していることを知っているので、これが理論的には機能することはわかっていますが、このプロセスのいくつかのステップについてはまだ疑問があります。
私はlein-ringで war構築プロセスを実行しましたが、主なハングアップは、サーブレットとリスナーのクラスが web.xml と共に生成されることです。このタスクを実行する Java ファイルを提供できると思いますが、それらの Java ファイルに含まれるものと、最終的にプロジェクトの構造内のどこに存在するかについては不明です。究極の戦争で生成される servlet.clj および listener.clj ファイルを見ると、それらは非常に単純に見えますが、この例は既に存在するのでしょうか?
もう 1 つの大きなハードルは、war プロセスがclojure.core/compile
プロジェクトの名前空間を呼び出すことです。これにより、clojure ソースからすべてのクラス ファイルが生成されます。Maven からのビルド中にこのコンパイルをトリガーする方法はありますか? 私はコンパイルを clojure.core/compile にファームアウトする Java クラスをほとんど想像していますが、java から clojure を呼び出すことの内外 (通常の流れの方向) や挿入方法についてはよくわかりません。これは、基本的な Maven ビルド プロセスへのステップです。
このいずれかについてどこから始めるべきかについての洞察は大歓迎です! 皆さんありがとう。
session - Compojure/Ring: Cookie ストアを使用したセッションがサーバーの再起動後に存続しないのはなぜですか?
現在のユーザーに関連付けられた OAuth トークンを格納するためにリング セッション ラッパーを使用する compojure アプリがあります。サーバーの再起動時にこのトークンを引き続き使用できるようにして、毎回認証プロセスを実行する必要がないようにしたいと思います。
デフォルトのメモリストアの代わりにクッキーストアを使用すると役立つと思いましたが、そうではありません。私は何が欠けていますか?
これは、コードの関連部分です。
この関数root-handler
はトークンを使用して、誰かがログインしているかどうかを判断しますが、セッション情報の方法で何も返しません。
clojure - リングアプリで例外をキャッチする慣用的な方法
リング アプリで例外を処理する慣用的な方法は何ですか。例外をキャプチャして 500 ページを返したいと思います。それ、どうやったら出来るの ?
以下のコードに口ひげを使用していますが、機能しません-
clojure - Clojure/Ring でバイナリ ファイルを提供すると断続的なエラーが発生する
ClojureでSnowplow用のイベント コレクターを構築しています(Ring/Compojure を使用)。Ring で透明なピクセルを提供する際に問題が発生しています。これは、ピクセルを送信するための私のコードです:
サーバーを起動すると、最初に のパスにヒットしたときにsend-pixel
、ピクセルがブラウザに正常に配信されます。しかし、2 回目以降は毎回、Ring は本文を送信しません (そして content-length 0)。サーバーを再起動しても同じパターンです。
そうではないいくつかのこと:
- を使用してこれを複製し
wget
、断続性がブラウザのキャッシュの問題ではないことを確認しました "R01GOD..."
コマンドライン ( ) で base64 文字列を生成したcat original.gif | base64
ので、そこに問題がないことがわかります- ピクセルが正常に送信されたら、その内容が正しいことを確認しました (
diff original.gif received-pixel.gif
)
私は Clojure を初めて使用します。コードに厄介な動的グレムリンがあると思いますが、それを見つけるのに助けが必要です。
clojure - 投稿されたjsonにring format-paramsミドルウェアでアクセスする
clojure でリングを使用して非常に単純な API を作成しようとしています。私は、rack.middleware.format-params ミドルウェアを使用して、出力を json に変換し、json からの入力を clojure データ構造に変換しています。
出力は正常に機能していますが、json を介して送信されたパラメーターにアクセスすることはできません。get リクエストで機能するコードを次に示しますが、POST リクエストで受け取った json を返すことができません
これを返すだけです:{}
私は何を間違っていますか?
clojure - Clojureリングのwrap-json-paramsがJSON配列をめちゃくちゃにする
私は現在、clojure でいくつかの REST API を行っています。また、リング.ミドルウェア.フォーマット ライブラリを compojure と共に使用して、JSON を clojure データ構造との間で変換しています。
私は大きな問題を抱えています.JSONがリングアプリに投稿されると、すべての配列が配列内の最初の項目に置き換えられます. IE から投稿されたこの JSON を変換します
これに
配列がルート要素である場合を含め、任意の配列に対してそれを行います。
json を返すために、clojure で次のコードを使用しています。
GET ルートには配列と出力が適切に問題がないため、データまたはwrap-restful-params
ミドルウェアを取得する方法のいずれかである必要があります。
何か案は?
http - Noirを使用した基本HTTP認証
noirの使い方を理解し始めたので、http基本認証を使いたいと思います。
https://github.com/adeel/ring-http-basic-authに出くわしました。ただし、与えられた例は、noirではなくcompojureに適用されるようです。
noirの抽象化レベルが高すぎて、異なるページに異なる認証を許可できないのではないかと思います。
http://webnoir.org/tutorials/othersですが、これらのリングハンドラーをどのように適合させるかを確認するために、clojureエコシステム全体にまだ十分に慣れていません。特定のルートのhttp認証として。
この問題についてどう考えるべきかについてのヒントを教えてくれる人はいますか?
ありがとうございました、