問題タブ [happstack]

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 投票する
2 に答える
246 参照

haskell - Happstack ルート フィルターで GET 部分と POST 部分を組み合わせる

Happstack を使用して単純なリクエスト ハンドラーを実装しようとしています。

を繰り返さずに同様のことを達成するにはどうすればよいdir "hello"ですか?

これ、

デフォルトの部分にのみ「フォールスルー」します。

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

haskell - Happstack ログを stdout に送信する方法は?

私は単純なHello World Happstackアプリを持っています:

リクエストを標準出力に記録したい。

ログを出力していると言っているhttp://happstack.wordpress.com/2009/02/26/happstack-now-outputs-apache-combined-logs/を見つけましたが、標準出力にはなりません。これまで hslogger を使用したことがなく、a) 構成する方法と、b) happstack に接続する方法を理解するのに苦労しています。nullConfdefault を提供しますlogMAccessが、それが hslogger でどのようになるかは明確ではありません。

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

haskell - 高性能アプリケーション サーバーには、Yesod の Warp と snap-server のどちらを選択すればよいですか?

Yesod のホームページでベンチマークを見たことがありますが、ほとんどが静的ファイル用です。また、Snap の Web サイトのベンチマークは古くなっています。

Haskell モジュールをサービスとして公開しようとしています。サーバーのロジックは、JSON で関数名と引数を受け取り、Haskell 関数を呼び出して、出力を JSON として再度配信することです。参照透過性により、スレッドの安全性と、関数のメモ化およびキャッシュ機能が保証されます。

2k から 5k の順序で同時接続をサポートする場合、どのように実装しますか? このアプローチはどの程度スケーラブルですか?

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

haskell - Happstack でルート フォール スルーとインデックス ページへのアクセスを分離するにはどうすればよいですか?

ユーザーがmyserver.comインデックスルートにアクセスして来られるようにしたい。

そして、彼らが訪問したときにリストページを表示したいmyserver.com/pages.

ただし、ルートmyserver.com/invalidpath/blablaに落ちるなど、ユーザーが無効な URLにアクセスした場合。indexPage

404 page無効な URL にアクセスしたときに で応答したい。

これが私のルートの例です:

私が今考えていることは、私のindexPage関数では、パスに何かが含まれているかどうか、またはパスが空であるかどうかを確認できるということです。このようにして、フォール スルーが無効な URL によるものか、インデックス ページへのアクセスによるものかを判断できます。

これを行う良い方法はありますか?

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

haskell - 別のモナドの中でおそらくモナドを使用する方法は?

私はこのコードを持っています (happstack の中にありますが、単なる IO モナドである可能性があります):

ネストされた case ステートメントを削除して、次のように書きたいと思います。

...しかし、 userId はMaybe String単なる ではなくのタイプになりStringます。doMaybe モナドを使ってネストされたブロックを評価するにはどうすればよいですか? (ネストされたケースを削除する別のリファクタリングも受け入れます。)

更新:以下は、同じ問題の一般的ですが、不自然なバージョンです。

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

haskell - Reform ライブラリを使用してフォームを作成する場合、すべてのエラーを 1 つのリストにまとめるにはどうすればよいですか?

私は改革ライブラリのチュートリアルに従っています。現在、2 つの必須フィールドとその設定を含むフォームがあるため、各フィールドのエラー メッセージがそのすぐ隣に表示されます。

たとえば、このフォームを空の状態で送信すると、検証が失敗し、ユーザーに再度入力するように求められ、次のようになります。

次のように、フォームの単一のエラー リストを作成する方法を知りたいです。

やってみた

しかし、エラーメッセージはまったく表示されません!


そのために必要な余分なボイラープレートがたくさんあるので、完全な実行可能な例を含めていません. ケースに関連するいくつかの関数の型シグネチャを次に示します。

http://hackage.haskell.org/package/reform-0.2.1/docs/Text-Reform-Core.html#v:-60--43--43-

http://hackage.haskell.org/package/reform-b​​laze-0.2.0/docs/Text-Reform-Blaze-Common.html#v:errorList

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

haskell - Happstack で「現在のルート」を取得する方法はありますか?

ウェブサイトでフォームを使用するときはいつでも、それに「アクション」属性を渡す必要があります (マークアップを検証したいので、空のままにしたくありません)。現在、次のようになっています。

アクションが同じページであるフォームの場合、現在行っているように URL を 2 回記述する必要はありません。代わりに「現在のURL」を取得する方法はありますか?


私がこれまでに持っている最良の代替手段は、アクションを明示的なパラメーター/変数に変えることです

しかし、それを行うと、名前を付けて関数に渡す必要がある追加のパラメーターが 1 つあります。"/" ++また、それを行う必要があるのは少し醜いと思います。

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

haskell - happstack-server-tls は自己署名証明書でのみ機能します

プライベート CA によって署名された証明書を使用するhappstack-server-tlsを使用して Web サーバーを作成しようとしています。残念ながら、TLS ハンドシェイクは、サーバーに自己署名証明書を渡した場合にのみ成功するようです。Wireshark は、サーバーがプライベート CA によって署名された証明書を使用している場合、クライアントに Server Hello メッセージを送信する代わりに、Handshake Failure (40) を報告する Fatal (2) Alert メッセージを送信することを示しています。

これは、Web ブラウザーがサーバーの証明書を拒否した場合ではありません。Wireshark は、TLS ハンドシェイクが、サーバーが証明書をブラウザーに提示するところまで到達しないことを示しています。サーバーは、使用したいアルゴリズムと同じアルゴリズムを使用する自己署名証明書を使用して問題なく実行されるため、暗号化アルゴリズムに同意できない場合でもありません。コマンドラインで使用すると期待どおりに機能し、 happstack-server-tls はTLS操作にOpenSSLを使用しているように見えるため、証明書自体は有効であるように見えるopenssl s_serverため、証明書の生成方法に問題はないと思います.

happstack-server-tls を非自己署名証明書で動作させるにはどうすればよいですか?

以下は、happstack-server-tls を使用してポート 8443 で Web サーバーを実行する最小限の Haskell プログラムであり、問​​題を示しています。サーバーの秘密鍵を含むファイル、サーバーの証明書を含むファイル、および (オプションで) CA の証明書を含むファイルの 3 つの引数を使用します。

上記のプログラムは、次のスクリプトで生成された自己署名証明書を使用して動作します。

そして、次のコマンドを実行します。

Webブラウザがサーバーに正常に接続できるという点で機能します(予想どおり、自己署名証明書について不平を言いますが)。

ただし、次のスクリプトによって生成された非自己署名証明書を使用すると機能しません。このスクリプトは、最初に新しいプライベート CA を作成し、次にその CA を使用してサーバーの証明書を生成します。

次のコマンドを実行すると:

(Wireshark で示されているように) 最初の TLS ハンドシェイクが失敗するため、Web ブラウザーは接続できません。

ただし、同じ証明書を使用してサーバーとして機能するために使用する場合、Web ブラウザーはTLS 接続を確立できます。openssl

onelevel.openssl.cnf例を完成させるために、プライベート CA の構成を提供する、前に参照した構成ファイルを次に示します。

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

c++ - cryptopp 外部ライブラリの依存関係

happstack-server-tlsArch Linux (3.12.9) で cabal 経由でパッケージをインストールしようとしましたが、次のエラーが発生しました:

このエラー メッセージを初めて見た後、crypto++pacman 経由でインストールしました。しかし、それは私を助けませんでした。

私もこれを試しました:

しかし、まだ運がありません。

crypto++ lib がこの test.cpp ファイルで動作するかどうかを確認しました:

そして、g++ -g3 -ggdb -O0 -Wall -Wextra -Wno-unused -o test test.cpp -lcryptopp -pthreadtest.cppがうまくコンパイルされました。

それから私はしようとしました

しかし、再び、まだ運がありません。

誰かがこの問題に直面しましたか? 解決策はありますか?

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

haskell - モナドを分解できないのはなぜですか?

(IO としましょう) モナドを分解できない理由がわかりません。のようにIO a -> a

私の質問は、 happstack を使用していて、 によって返されるものを取得したいときに発生しTextましServerPart (Maybe Text)(optional $ lookText "domain")IOそれから、モナドはエスケープできないということ を読んだことを思い出しました。

私はunsafePerformIOそれが悪い理由について読んだことがありますが、それらの理由のどれも私の質問に答えていないようです.