問題タブ [hasql]

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

haskell - Hasql のセッションと IO

関数を書きました

これは、Web 要求を受け入れて応答を作成します (必要に応じてデータベースを調べます)。実際に応答を送信するために、ラッパーを作成しました

この関数をWarprunSettingsに渡して、永久にループし、リクエストを処理します。

ただし、接続プールと準備されたステートメントの目的を無効にするすべての要求に対して新しいセッションを作成するため、これは本当に悪いことです。

その逆ではなく、runSettings内側に電話したいと思います。H.sessionただしrunSettings、署名がSettings -> Application -> IO ()あり、中IOに入るとセッションにアクセスできなくなりました。中に戻る方法はありSession b m rますか?

これは、プライベート メールからの質問の再投稿です。

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

postgresql - Hasql セッションの戻り値変数が特定の型で動かなくなっていますか?

Spock アプリケーションの外部で一度 Postgres に接続しようとしていますが、複数の戻り値の型を持つ Hasql セッション ハンドルを使用できないようです。

私のメイン アプリケーションはかなり単純ですが、コンパイルに失敗します。

printAHasqlStringまたはをコメントアウトするprintAccountCountと、コンパイルされて機能します (どちらも、もう一方なしで実行すると機能します)。

printAccountCountInt を返すprintAHasqlStringクエリを実行し、Text のクエリを実行します。どちらも結果を出力するだけで、IO ().

しかし、同じアプリケーションで両方のクエリを実行しようとするとr、データ型の型変数Sessionがロックされ、2 番目のクエリでコンパイルできなくなります。

エラーメッセージ:

更新されたエラー

以下のヘルプの後、新しいエラーが発生しました。

その型変数を呼び出し間で柔軟に保つにはどうすればよいですか?

完全な (更新された) コード: https://gist.github.com/cschneid/4174addefb254a517f35

0 投票する
0 に答える
60 参照

servant - :: BasicAuthCheck User 内の :: Hasql.Pool.Pool にアクセスするにはどうすればよいですか?

:: Hasql.Pool.Pool私は通常、引数としてserve関数に渡しrunますmain :: IO ()

:: BasicAuthCheck Userしかし、認証に使用することを計画し:: Hasql.Pool.Pool始めて以来:: BasicAuthCheck User:: BasicAuthData -> IO (BasicAuthResult User).

私の現在の回避策は、:: Hasql.Pool.Pool内部に別のものを作成し、:: BasicAuthData -> IO (BasicAuthResult User)それを使用してユーザーを認証することです。

別の接続プールを作成するよりもエレガントな方法はありますか?