問題タブ [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.
url - スコッティからの予期しない 404
私は Haskell で Scotty を使用しようとしています。チュートリアルに従って、次のように URL をルーティングできます。
しかし、複数のルート パラメータをキャプチャする構文は何ですか? 次のいずれも機能しませんでした。
haskell - Persistent と Hspec-wai を使用した Scotty
ルートの単体テスト中に問題が発生しました。Scotty、Persistent、および Hspec-WAI。
Yesod や Spock とは異なり、Scotty にはデータベース ハンドラを格納する適切な場所がありません。データベースを起動し、データベース プールをローカル変数として保持し、その変数を使用する 1 つの大規模な "do" を用意することで、機能するようになりました。
しかし、Hspec-WAI は IO 申請フォームでそれを望んでいます。
DB 接続プールを scottyApp に注入する適切な方法はありますか?
mongodb - Haskell データベース接続
この scotty アプリを見てください ( 2014 年のこの古い回答から直接取得したものです):
pipe
Web アプリの起動時にデータベース接続 ( ) が 1 回だけ作成される様子がわかります。その後、数百万とは言わないまでも数千の訪問者が同時に「/」ルートにアクセスし、同じ接続を使用してデータベースから読み取ります ( pipe
)。
を適切に使用する方法について質問がありますDatabase.MongoDB
。
- これは物事を設定する適切な方法ですか?「/」にアクセスするたびにデータベース接続を作成するのとは対照的です。この後者の場合、一度に数百万の接続を持つことができます。それは落胆ですか?このようなアプローチの利点と欠点は何ですか?
- 上記のアプリで、データベース接続が何らかの理由で失われ、再度作成する必要がある場合はどうなりますか? そこからどのように回復しますか?
auth
関数による認証はどうですか?auth
を作成した後に関数を 1 回だけ呼び出す必要がありますpipe
か、それとも「/」にヒットするたびに呼び出す必要がありますか?- プール ( ) を使用することになっていると言う人もいます
Data.Pool
。同じデータベース接続を同時に使用する訪問者の数を制限するのに役立つだけのようです. しかし、なぜ私はそれをしたいのでしょうか? MongoDB 接続には、同時使用のサポートが組み込まれていませんか?
haskell - 'param' の使用から生じるあいまいな型変数 'a0' により、制約 '(Parsable a0)' を解決できません
このエラー メッセージを理解できません。次に何を調査すればよいかわかりません。
次のインポートがあります。
エラーの原因となっているコード:
そしてエラー:
sql - ScottyM() 関数内の Haskell データベース クエリ
シンプルな残りの API を作成しようとしています。私は Database.SQLite.Simple、Scotty、Aeson を使用しています。ScottyM() ルート関数内の DB クエリに問題があります。私はこのようなものを持っているとき
すべて正常に動作しますが、このシナリオでは allUsers はサーバーの起動時に 1 回だけ更新されます。誰かがそれについて尋ねるたびに質問したい。だから私はこれを書いた:
エラーが発生します
それを修正する方法は?また、たとえば、SQLクエリに引数を渡すにはどうすればよいselect * from users where id = id from parameters
ですか?
selenium - WebDriver と Scotty モナドを組み合わせる方法
初心者ですので、よろしくお願いします。
次のコードがあります。
これらの塗りつぶされた部分でさえ正しいかどうかはわかりません-Seleniumセッションを開始し(startMyBrowser
)、Webサーバーを起動し(scottyT
部分)、Webサーバーが停止した後、Seleniumセッションを終了する必要があります(stopMyBrowser
)。
型をいじった後、上記のコードにたどり着きましたが、欠けているのは穴の 1 つだけのようです。
機能するようになったら、解決策を説明したり、より多くの資料へのリンクを追加したりしてください。私はそれらのいまいましいトランスフォーマーを理解したいと思っています。
編集1:ここにエラーがあります: