問題タブ [scotty]

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

haskell - ハンドラーごとのリーダー用の Scotty モナド トランスフォーマー

質問Web, Scotty: connection pool as monad readerScottyTでは、モナドをスタックに埋め込んでReader静的構成 (この場合は接続プール) にアクセスする方法が示されています。

同様の質問がありますが、もっと単純です – または、少なくとも私はそう思いました…</p>

アプリ全体ではなく、Reader単一のハンドラー (つまり a ) に aを追加したい。ActionT

上記の質問からプログラムの変更を開始しましたが、必要なハンドラーに をActionT Text (ReaderT String IO)変換する方法がわかりません。ActionT Text IOこれを構築する方法を知りたいと思って、手探りして型付きの穴を使用しようとした後、私は今のところあきらめて助けを求めなければなりません。これは単純であるべきだと本当に感じていますが、これを行う方法がわかりません。

これがプログラムです。私が立ち往生している行が強調表示されています。

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

haskell - Haskell Scotty Webserver がテキスト応答を送信する

GET リクエストを受け取り、それに対する応答としてテキスト メッセージを送信したいと考えています。次のコードがありますが、次のエラーが表示されます。

サーバーを実行しようとすると発生するエラーは

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

haskell - Haskell でモジュールを動的にインポートする

Scotty ベースのアプリケーションを構築しており、ディレクトリに含まれる動的ミドルウェアのリストをインポートして追加しようとしています。

ミドルウェアのリストをハードコーディングしたくありませんが、現在のところ、Index.hsすべてのディレクトリミドルウェアを公開するを使用しています。

私が持っているとしましょうMain.hs

次にControllers/Index.hs

それぞれControllers/*.hsにミドルウェアが含まれています。

を取り除く最良の方法は何Controllers/Index.hsですか? ディレクトリからすべてのモジュールをインポートして、作業できるリストを取得する方法はありますか?

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

haskell - Scotty または Yesod で別のソケット接続を開く方法は?

IRC ネットワークに接続する (ソケットを開く) 必要があり、Web アプリもホストするアプリケーションを構築しています。一部のデータは、IRC パーツと Http パーツの間で共有する必要があります。Haskell でそのような同時実行性を実現する最善の方法は何ですか? Control.Monad.STMこれを実装するために使用する必要がありますか?これは Web フレームワークもサポートすべきものですか、それとも Scotty を開始する前に fork することは可能ですか?

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

haskell - ネストされたサブディレクトリを Scotty RoutePattern と一致させる

Scotty Web サーバーでいくつかの静的ファイルを提供しています。サブディレクトリに配置することもできます。私の現在のアプローチは次のようになります。

単一のパターンのみを使用して、ディレクトリのネストの深さが異なるパスを一致させる可能性はありますか?

0 投票する
3 に答える
551 参照

haskell - WAI でリクエストの本文とヘッダーのサイズを制限するにはどうすればよいですか?

ScottyともちろんWAIを使用してアプリケーションを開発しています。本文の長さとヘッダーの両方について、リクエストのサイズを制限できるようにしたいと考えています。どうやってやるの?プレーンな WAI ミドルウェアを使用してそれを行うことは可能ですか?

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

haskell - Scotty でコンパイル時にルートを動的に追加する

Template Haskell またはその他の方法を使用して、構成ファイルを介してコンパイル時にルートを動的に追加することは可能ですか?

Scotty には関数addRouteがありますが、動的に使用したいと考えています。

sampleRoutes 配列を繰り返し処理し、コンパイル時にルートと応答を定義したいと考えています。

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

haskell - Scotty を使用したネットワーク I/O のスループットが予想外に低い

Scotty のベンチマークを実行して、ネットワーク I/O の効率と全体的なスループットをテストしようとしました。

このために、Haskell で記述された 2 つのローカル サーバーをセットアップしました。何もせず、単に API として機能するもの。

同じコードは

このサーバーを呼び出して応答を返す別のサーバーを作成しました。

これらの両方のサーバーを実行して、wrkベンチマークを実行したところ、非常に高いスループットが得られました。

これは、Phoenix などの他の Web サーバーよりも大幅に高かったのですが、応答の大部分がファイル記述子の枯渇により発生した 500 エラーであったため、これは何の意味もないことに気付きました。

かなり低い制限を確認します。

これらの制限を

もう一度 wrk を実行したところ、明らかに十分なスループットが大幅に低下していました。

500 エラーの量は減少しましたが、完全にはなくなりませんでした。Ginと Phoenix のベンチマークScottyを行ったところ、500 の応答がない場合よりもはるかに優れていました。

欠けているパズルのピースは何ですか? デバッグに失敗している問題があると思われます。

http-conduitはこれらのエラーと多くの関係があり、http-clientライブラリはフードの下でそれを使用しており、これは とは何の関係もないことを理解していScottyます。

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

json - BSON を JSON に変換し、API レスポンスとして送信 Haskell

私は初めての Haskell Web アプリに取り組んでおり、BSON ドキュメントを JSON に変換してから API 応答として送信する際に問題が発生しています。現在、AesonBsonパッケージを使用して BSON を Aeson に変換してObjectいますが、その AesonObjectを JSON API 応答として送信する方法がわかりません。

私のサーバーのルートハンドラーの例を次に示します。

これらは単純なはずです -をgetAllDocuments返しIO [Document]、次にaesonfyドキュメントのリストをマッピングしてから、JSON サーバーの応答として返そうとします。

問題は、このNo instance for ToJSONエラーが発生し続けることです:

私が見逃しているものはありますか?aesonifyAeson を返すように見えますObject... のインスタンスではないToJSONでしょうか? どんな助けでも大歓迎です。私はしばらくの間、これで車輪を回転させてきました。Aeson のobject関数を別の場所に配置して、ドキュメントを のインスタンスとして手動で追加しようとしましToJSONたが、実際にはこれを理解できません。