問題タブ [mojolicious]
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.
perl - Mojo::DOM の使用中に子要素を特定する際の問題
WWW::Mechanize
と を使用して、古い vBulletin フォーラムからテキストを抽出しようとしていますMojo::DOM
。
vBulletin はセマンティック マークアップに HTML と CSS を使用していないMojo::DOM->children
ため、特定の要素を取得するのに問題があります。
これらの vBulletin の投稿は、コンテンツによって構造が異なります。
単一のメッセージ:
別のユーザーを引用する単一のメッセージ:
ネタバレのある単一のメッセージ:
スポイラー付きの別のユーザーを引用する単一のメッセージ:
上記の HTML と、必要な投稿 ID がパックされた配列を想定すると、次のようになります。
を使用$dom->at($div_id)->all_text
すると、途切れのない行にすべてが表示されるため、投稿で引用されているものと元のものを区別するのが難しくなります.
を使用$dom->at($div_id)->text
するとすべての子要素がスキップされるため、引用されたテキストとスポイラーは取り上げられません。
のバリエーションを試しまし$dom->at($div_id)->children('div')->first
たが、これで HTML を含むすべてが得られます。
理想的には、各投稿のすべてのテキストを取得し、各子要素をそれぞれの行に表示できるようにしたいと考えています。
Mojo は初めてで、Perl には慣れていません。これを自分で解決したかったのですが、ドキュメントを調べて数時間いじった後、私の脳はどろどろになり、途方に暮れています。私は方法Mojo::DOM
とMojo::Collections
仕事を得ていません。
どんな助けでも大歓迎です。
perl - Mojolicious Websocket リクエストのクエリ文字列
Mojolicious Websocket リクエストでクエリ文字列パラメーターにアクセスしようとすると、予期しない動作が発生します。私のリクエストが次のようになっているとします。
次に、mojo コントローラー コードで、次のいずれかの方法で item_id の値を取得しようとします。
問題は、私が取得する item_id が、私が使用するこれらの手法のいずれであっても、以前のリクエストからのものであることが多いことです。私のアプリは現在 hypnotoad で提供されています。
mojolicious の websocket リクエストでクエリ文字列パラメーターはサポートされていますか? それらにアクセスするためのより信頼できる方法はありますか? 基本的に、サポートされていないことを試みているかどうかを知りたいので、問題が自分のアプリに固有のものであるかどうかを知ることができます。
助けてくれてありがとう
apache - Apache proxyPassReverse と Websockets
私は、websocket を使用する Perl Mojolicious プロジェクトに取り組んできました。Apache を実行している共有サーバーで起動し、proxyPass と proxyPassReverse を使用して、Hypnotoad で実行する Mojolicious コードの URL をきれいにしたいと考えています。
以下のように設定しています。
アパッチの URL:
ヒプノトードのURL:
次のApacheエントリを使用して、Hypnotoadサーバーをリバースプロキシできます
apache.conf エントリ
ただし、次を使用すると、websocket リクエストで 404 エラーが発生します。
私が使用すると302エラー:
Websocketが認証をチェックしなかったので、これは問題にはならないと思いますが、Mojoliciousルートを使用して、Websocket経由で投稿できることを確認します。
私が見る限り、Apache はリバース プロキシ WebSocket をサポートしていません。apache/httpd conf ファイル内。
本番環境で安定しているApacheを使用して、これに対する使用可能なソリューションを見つけた人はいますか?
perl - Mojolicious でセッションが期限切れにならない
Mojolicious アプリケーションと認証用のブリッジがあります。これが私のシナリオです。
データベースに一連の標準エラー応答があり、値を渡してクエリを実行します。たとえば、詳細なエラー応答で 404 を返します。データベースには、エラーに対応する共通の詳細が含まれますが、IP やユーザー名などの他のユーザー固有の詳細はコントローラーから取得されます。よろしければこちらのリンクをご覧くださいエラー応答がどのように構築されるかについて。コントローラーのインスタンスとエラー コードを取得して必要な応答を生成するヘルパーがあります。コントローラー オブジェクトを使用して、エラー応答を含むテーブルの結果セットを介してデータベースにクエリを実行します。コントローラーを介して、応答を作成するために必要なユーザー固有の詳細も取得します。次に、応答が作成され、Json として返されるコントローラーに送り返されます。
私の問題はログアウト時$self->session(expires => 1)
です。セッションを無効にする設定をしました。もう一度ログアウトしようとすると、コントローラーを使用してヘルパー ビルドにアクセスし、エラー応答をクライアントに送信します。現在、URI のいずれかにアクセスしようとしても、次のチェックによって最初の試行は無効になります。
このチェックは初めて機能しますが、リソースに再度 (何度でも) アクセスしようとすると、このチェックは失敗し、ログインせずにリソースにアクセスします。Cookie を見ると、新しい Cookie が作成されます。ここでどこが間違っていますか?そして、そのような問題を処理する最善の方法は何でしょうか? ヘルパー関数は次のようになります
特定のエラーを識別するデータベース内の場所res
と id。
それで、ヘルパーでまだ利用可能なコントローラーの参照と関係がありますか? ヘルパーで定義を解除$c
すると、役に立ちません。
編集1:ここでいくつかの点が欠けていますか?これは正しい方法ですか?
編集 2:ログアウト時にユーザーを無効にします。ユーザーが再度ログアウトしようとすると、エラーに関する追加情報を含むエラーが返されます。ただし、エラーに関する追加情報の作成中に、ユーザー情報なしで新しいセッションが作成されます。これは、次のようにすると発生しません
perl - ネストされたルートをMojoliciousのサブクラスにマッピングする方法
私はMojoliciousを使用しており、次の場所でサービスを構築します。
コントローラが「admin/users」と一致するようにルートを作成し、それをAdmin::Usersに変換するにはどうすればよいですか。
達成したい:
すべての管理者コントローラーのルートを作成せずにこれを行うための良い方法はないようです。これは無駄のようです。上記のステートメントは、「Admin::Posts」ではなく「Admin/posts」のコントローラーを生成します。
誰かがこれを行う方法に光を当てることができますか?
perl - Mojolicous と Hypnotoad はどのように機能しますか?
私は、ヒプノトードと労働者がどのように機能するかを誰かが確認するのに十分親切であることを望んでいました:)
たとえば、クライアント コードにループ (つまり for each ) があり、反復ごとに異なる引数で同じルートを呼び出すとします。バックエンドへの各呼び出しが異なるワーカー広告によって同時に処理される可能性はありますか? (フリーワーカーがいる場合は?)
これは基本的な質問であることは知っていますが、助けていただければ幸いです
ありがとう。
perl - Mojo::CookieJar-ファイルからCookieをロードする方法
このコードのようにMojoのファイルからCookieをロードする方法:
cookie.txtがない限り、スクリプトはユーザー名とパスワードを使用し、結果のCookieはファイルcookie.txtに保存され、次回はこのファイルを使用します。
Mechanizeを使用せずにこのコードを書き直そうとしていますが、Cookieファイルの保存と読み込みに問題があります。
PS私の英語とperlでごめんなさい:)
perl - Mojolicious :: Lite静的ファイルダウンローダーを作成するにはどうすればよいですか?
Mojolicious :: Liteでファイルのアップロード/ダウンローダーを作成しようとしていますが、アップロードセクションに問題はありませんが、ダウンロードセクションで問題が発生しています。このコードを使用すると、小さなテキストファイルをダウンロードできますが、それ以外は0バイトのファイルになります。これを正しく行う方法について何かアドバイスはありますか?
arrays - 配列をpost変数として送信する方法
私はPerlとPerlフレームワークを使用しています(それが重要かどうかはわかりません)。私がやろうとしているのは、フォームに任意の量の入力を作成し(ユーザーがリストから必要な数だけ選択できるようにするため)、それをHTTPPOSTの一部として送信することです。それを行う方法さえありますか?もしそうなら、Perlでその情報を取得するにはどうすればよいですか?