問題タブ [plack]

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 に答える
602 参照

perl - 静的 CGI スタイルの perl スクリプト (xxx.pl) を動的 PSGI アプリケーションに変換するには?

CGI スタイルの perl スクリプトは、このスタイルではテストが困難です。

(注: コードは ruby​​ で、 を使用していますRack::Test)。

$envしかし、静的ファイルを PSGI アプリケーション (コード参照、パラメーターとして受け入れ、 return ) に変換できれば[$status, $header, $body]、物事は簡単になりPlack::Test、残りはすべて実行されます。

私は PSGI 仕様を読んでいますが、一般的にこれへのルートを見ることができます。しかし、私はまだ知りたいのですが、これには存在する車輪がありますか?

Plack::Testまた、のインターフェイスは ほど美しくないと思いますがRack::Test、代替案はありますか?

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

perl - 静的ファイルハンドルの提供中にTwiggy400Bad Request

小さなテストケースでは再現が難しい問題がありますが、基本的な説明は次のとおりです。

  1. 私はPerlのTwiggyWebサーバーをルートとして実行しており、ポート81にバインドされています。

  2. Plack :: App :: File->(root => "/ my / directory")をデフォルトのWebアプリケーションとして使用して、/ my / directory/..から静的コンテンツを提供します。

  3. 小さいファイルの場合、これは正常に機能しますが、大きいファイル(たとえば、30kB以上)の場合、出力は400BadRequestエラーによってかなり確実に切り捨てられます。たとえば、/ my / directory / my.cssの先頭にある/my.cssをリクエストしていますが、末尾は次のとおりです。

    /li>

Twiggyは、上記のようにファイルを切り捨てるのではなく、ファイル全体を提供することを期待しています。

Twiggy / Server.pmを操作して、ファイルハンドルを提供するとどうなるかを確認しようとしましたが、迷子になりました。:(

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

perl - Plack と Middlewares を使用しているときに、デフォルトの perl の IO を utf-8 に切り替えるのは正しいですか?

2 つの出発点:

使い方は正しいですか

PSGI アプリケーションおよび/またはモジュールで?

uni::perlPerl のデフォルト IO を UTF-8 に変更します。

そうすることで、Plack やそのミドルウェアの何かが壊れますか? openまたは、プラグマなしで、オープン時に明示的にエンコード/デコードするPlack用のアプリを作成する唯一の正しい方法ですか?

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

perl - Modperl構成をPlackに変換する-ファイル拡張子によって異なるハンドラーを実行する

これは、現在のApache / ModperlサイトをStarmanに転送しようとしているため、ファイル拡張子ごとに異なるハンドラーを使用してapp.psgiをビルドする必要があります。Apacheのようなもの:

今私が持っています:

しかし、ビルダーの使い方は?

必要な「ルール」:

  • リクエストに拡張子がない場合、またはリクエストが「/」で終わる場合
    • で処理する必要があります$Mapp
  • リクエストが何らかの拡張子で終了する場合は、
    • .m.mhによって処理する必要があります$Mapp
    • .p.phによって処理する必要があります$Papp
    • 拡張子が付いた他のすべてのファイル(.css .js .pdf .jpg ...など)は静的として処理する必要があります。

もちろん、すべての静的ファイルをツリーに配置する方がはるかに簡単ですが、現在のアプリ提供されているので、後でリファクタリングしてStartmanに移動するだけです。

0 投票する
4 に答える
7800 参照

nginx - nginx/starman/dancer Web スタックの説明

私はしばらくの間 Web プログラミングを行っており、LAMP スタックに精通しています。nginx/starman/dancer スタックをいじってみることにしましたが、すべてのピースが互いにどのように関連しているかを高レベルから理解する方法について少し混乱しています。スタックのセットアップは、LAMP スタックのセットアップほど単純ではないように思えますが、それはおそらく、各要素がどのように関連しているかをよく理解していないためです。

nginx が果たしている役割 (軽量の Web サーバー/プロキシ) は理解していますが、starman が pgsi、plack、dancer とどのように関係しているかについては混乱しています。

これらの部分が互いにどのように関連しているか、およびスタックのセットアップを取得するためにそれぞれが必要な (または必要でない) 理由の概要を説明していただければ幸いです。ありがとう!

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

perl - Plack::Builder ポストを取得

特定のメソッド (GET または POST) のビルダー セクションで指定する方法はありますが、両方を同時に指定することはできませんか? ビルダーセクションの私の例。

get および post リクエストを処理しますが、GET リクエストの処理を無効にするにはどうすればよいですか?

ありがとう。

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

perl - PSGI を使用して、アップロードされたファイルの名前を変更することは可能ですか?

フォームからアップロードを取得し、処理のために別のスクリプトに渡す小さな PSGI アプリがあります。

ファイルは のように正常にアップロードされます/tmp/Fw8n6j0ICn.txt。問題は、処理がアップロード時の名前のファイルに依存していることです。

ファイルのアップロード方法を変更して に移動することはできます/tmp/Fw8n6j0ICn/original_name.txtか?

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

perl - Plack::Runner を使用した Apache サーバー上の Perl Dancer

Apache サーバー (centos 6) で実行したい Perl Dancer Web アプリがあります。Pluck::Runner モジュールを使用する public/dispatch.cgi スクリプトへのシンボリック リンク (index.html) を webapp の rootdir に配置しました。

問題は、ページをロードするときに、必要なファイル (sqlite ファイルなど) が見つからないことです。実際、ルーティングは $appname/index.pl/blabla... の代わりにルーティングを探すため、混乱しています$appname/blabla...

ここでは何らかの apache ディレクティブまたはルールが必要だと思いますが、十分ではありません。

誰かがこの問題を解決するのを手伝ってくれることを願っています。

ありがとうございます。ロイ。

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

perl - Perl-FacebookグラフAPI

以前はデスクトップアプリケーションとWebアプリケーションを区別するのは簡単でしたが、今日はドキュメントを読んでいるときに、この違いがあまり目立たないことに気づきました。

Facebook :: Graphモジュールを使用してデスクトップアプリケーションを作成していますが、それでも構成の段階を超えることはできません。私は認証段階で立ち往生しています:

http://metacpan.org/pod/Facebook::Graph

「$envが必要です」と言われ続けます。ドキュメントを読んで、PlackはWebアプリケーションにのみ関係していることに気づきました。

http://metacpan.org/pod/Plack::Request

これを確認できますか?そうでない場合、どうすればこのステップを乗り越えることができますか?

Mechanizeを使用してaccess_tokenを取得し、ドキュメントで説明されているようにGETリクエストを行うことは問題ではありませんが、私の存在を複雑にしたくないので、他の方法がある場合は...