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

haskell - Reader モナドを Scotty のモナドに追加するにはどうすればよいですか?

Scotty を使用して非常に単純な API を構築しようとしています。ルート ハンドラー アクションが不変の環境にアクセスできるように、Scotty モナドを拡張したいと考えています。これを行う方法は、Readerモナドをスタックに追加することだと思います。Text今のところ、いくつかのデータを渡したいだけです。

Scotty モナドを次のように拡張しました。

https://github.com/stu-smith/Brandy/blob/0838a63537d7e396ac82d58d460c6529349303d3/src/Core.hs

だから私の最初の質問は、これは正しいアプローチですか?

ルート ハンドラのタイプを正常に変更しましたが、このスタックを使用して Scotty を起動する方法がわかりません。私は次のことを試みました:

https://github.com/stu-smith/Brandy/blob/0838a63537d7e396ac82d58d460c6529349303d3/src/Main.hs

しかし、私はエラーが発生します:

2 つ目の質問は、別のモナド スタックで Scotty を起動するにはどうすればよいかということです。モナド変換子を使用するのはこれが初めての試みであり、絶望的に迷っているようです。

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

haskell - Scotty の ActionT の MonadReader インスタンス

私はタイプを持っています

私はこのための MonadReader インスタンスを作成しようとしていますので、尋ねる必要はありませんが、常に取得します

以下のいくつかのインスタンスタイプを試しましたが、常に上記のエラーが発生します

インスタンスで基本的な何かが欠けているように感じます。理解していると思いますFlexibleInstancesが、それがここでどのように適用されるかわかりません。

インスタンスタイプに関するヘルプをいただければ幸いです。実装askしたいとlocal思います。主な目標は学習です。

ありがとう。

アップデート

私はそれを使って動作させましFlexibleInstances, MultiParamTypeClasses, UndecidableInstances

まだローカルの実装に取り​​組んでいます。私もUndecidableInstances悪いと思いますか?

更新 2

私は本当に必要なものだと思います。

しかし、私はまだ理解できませんlocal

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

mongodb - MongoDB を使用する Scotty

私は Haskell に比較的慣れていないので、モナド変換子を扱うのはこれが初めてです。助けていただければ幸いです。

Web フレームワークでmongodbデータベースにクエリを実行しようとしていますが、 . でデータベースに接続するには、これのインスタンスを作成する必要がありますか?scottyMonadBaseControlscotty

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

mongodb - Haskell: 接続の可用性を N 回遅らせてテストする (scotty から mongodb)

scotty Web アプリと mongodb サービスが正しい順序で開始されるというばかげた問題があります。systemd を使用して最初に mongodb を起動し、次に scotty Web アプリを起動します。何らかの理由で機能しません。connect: does not exist (Connection refused)接続の準備ができていないことを意味する mongodb ドライバーからのアプリ エラー。

だから私の質問。接続の可用性を 0.5 秒間隔で 3 回テストしてからエラーになるようにするにはどうすればよいですか?

これはアプリケーションの主な機能です

アプリ サービスは mongodb サービスの後に注文されますが、アプリの起動中は mongodb への接続がまだ利用できません。したがって、上記のエラーが発生します。これは、正しいサービスの順序に関する質問を避けるための systemd サービス ファイルです。

正しいサービス順序で mongodb への接続が利用できない理由がわかりません。したがって、haskell コードを使用して接続の可用性を 0.5 秒の遅延で 3 回プローブし、その後エラーを発生させたいと考えています。どうすればいいですか?

ありがとう。

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

haskell - scotty でアップロードするファイルのサイズを制限するにはどうすればよいですか?

私は現在、Web 開発用の Scotty を検討していますが、今のところかなり良さそうです。ただし、最初にファイル全体を受信せずに、ファイル サイズが特定の制限を超えているファイルのアップロード (または任意の POST 本文) を破棄する方法がないように思われることを心配しています。https://github.com/scotty-web/scotty/blob/master/examples/upload.hsの例では、ファイル サイズの制限について言及されておらず、ドキュメントには何も見つかりません。

もちろんlength、ByteString に対して実行することもできますが、ファイル全体が既にメモリに読み込まれるまで、それがどのように機能するかわかりません。

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

json - entityIdToJSON で Persistent の getJust を使用する際の問題

私は Haskell を初めて使用し、Persistent を ORM として使用して Scotty Web API を作成しようとしています。次のコードに問題があります。

このresource関数は、公開したい永続モデル オブジェクトの Scotty Web ルートを定義します。

によって定義された最初のルートresourceは、コレクション全体を取得します。たとえば、HTTP GETto/accountsはすべてのアカウントを返します。

によって定義された 2 番目のルートはresource、ID によって特定のエンティティを取得します。たとえば、HTTP GETto/account/1は ID 1 のアカウントを返します。

関数はそのまま機能しますが、デフォルトの json シリアライゼーションに id が含まれていないのが気に入らないためentityIdToJSON、get all ルートで使用しました。

ただし、entityIdToJSONget by id ルートに含めようとすると、 の行でS.json $ found、次のタイプのエラーが発生します。

リソースに型制約を追加しようとしましたがEntity a、事態が悪化しました。また、ハックに関するドキュメントを掘り下げてみましたが、読んでいるものすべてをよく理解していません。ドキュメントは、キーがそのキーとともにエンティティであることを示しているようです。

tl;dr - 私の問題は、エンティティを期待する Persistent の entityIdToJSON 関数で、Persistent の getJust 関数の結果である Key を使用しようとしていることです。

何か案は?

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

haskell - Scotty / wai を使用してプロキシの背後にあるときに実際の IP アドレスをログに記録する方法

これは私の scotty アプリです。リクエストをコンソールに記録する方法に注目してください。

私の scotty アプリは、プロキシ メカニズムを使用して nginx の背後で実行されます。これにより、scotty アプリは次のようにログに記録します。

REAL IP ADDRESSをログに記録したい。

Node.js/Express アプリで同じ問題が発生し、次のように解決しました。

Express.js: リモート クライアント アドレスを取得する方法

Scotty でこの問題を解決するにはどうすればよいですか?