問題タブ [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.
haskell - Happstack で JSON Rest API を作成するには? JSON本体?
Happstack を使用して JSON REST API を作成しようとしています。JSON 本文を含む POSTS を許可する必要があります。これどうやってするの?happstack の API のすべての関数は、パラメーター名に基づいて検索しているようです。本文は常に URL エンコードされていると見なされます。
Happstack でそれができない場合、どのフレームワークを使用すればよいですか?
haskell - cabal なしで HAppStack アプリを実行する
HAppStack を試しています。HAppStack をインストールし、プロジェクトを作成しました: happstack new project web
. その下にプロジェクト ゲストブックを含む新しいフォルダー 'web' が作成されました。だから今、私はそれを実行したいと思います。私ができる唯一の方法は runcabal install
です。しかし、cabal でインストールせずにアプリを実行したい! run.sh の実行エラー: モジュール 'Paths_guestbook' が見つかりませんでした。どうすればいいですか?
編集: 一般に、スナップのように再構築せずに HAppStack アプリを実行する方法はありますか?
jquery - HappstackjQueryとプレーンテキストファイルのコンテンツ
Happstack-build Webサイトで、「ユーザーが送信した」プレーンテキストファイルを読み取ろうとしています。主な機能はファイルの内容を取得することです。さらに使用するために、ファイルのサーバー側のストレージは必要ありません。
- これを実現する方法は何でしょうか?
- ファイルをアップロードする必要がありますか、それともajaxで処理できますか?そうでない場合は、その理由を教えてください。
- サンプル実装が役立つでしょう
haskell - happstack-lite ハンドラーで例外をキャッチする
happstack-lite を使用して Web アプリケーションを作成しています。ServerPart Response ハンドラが純粋な関数を呼び出し、この関数がerrorを呼び出すと、ハンドラ全体が失敗し、happstack がデフォルトのエラー メッセージを出力します。
サーバー エラー: Prelude.head: 空のリスト
この例外をキャッチしてカスタム メッセージを返すことは可能でしょうか。残念ながら、ServerPart モナドでcatchを使用する方法がわかりません。
理想的には、ハンドラーは次のコードのようになります。
更新:履歴用にソリューションを保存する
haskell - リーダーを使用したServerPartTモナドの拡張
Happstackサーバーを作成していて、接続するMongoDBデータベースがあります。そのために、接続プールを作成する関数を作成しました
そしてAction
、作成されたプールでを実行する関数:
pool
これには、すべてのルートでパラメータとしてを実行する必要があることは明らかです。私はそれをにラップしたいReaderT
ので、それrunDB
はのようなタイプAction IO a -> ServerPart (Either Failure a)
またはそれ以上のタイプを持つことができAction IO a -> ServerPart a
、失敗すると自動的にHTTPエラー500が発生します。
それをどのように達成できるかについて頭を悩ませています。Haskellモナドとhappstackの経験が豊富な人からのヒントが欲しいです。
ありがとう。
haskell - MonadReader/MonadErrorインスタンスをTransformerタイプに追加する
Happstackで作業するときはいつものように、ハンドラーに使用する独自のサーバーモナドを作成し、DBとセッション、およびいくつかのエラー処理をカバーしています。私は最近happstack-clientsession
、大きな助けになり、自分のソリューションを書くのを妨げる-Packageを発見しました。
ClientSessionT
モナドで自分自身に配線するのに少し問題がありますが。結局のところ、そのためのインスタンスはMonadReader
ないMonadError
ので、ラッパーモナドでインスタンス化することはできません。
モジュールの完全なコードは次のとおりです。
私が得ているエラーは明らかです:からの派生MonadError
とMonadReader
は機能しません。しかし、私はそれらが必要です。さもなければ、全体のパフォーマンスはちょっと役に立たないです。
私はこれらがどのように行われるのか(そしてそれに依存するのかderiving
)を理解することができなかったので、この特定の問題をカバーし、それが一般的にどのように行われるのかを教えてくれる答えが欲しいです。
haskell - WebルートでPathInfoクラスを派生させますか?
HappstackでWebルートのチュートリアルを読んでいますが、これが何をしているのかわかりません。
ドキュメントは単に言う:
template-haskellを使用して、サイトマップタイプのPathInfoのインスタンスを取得します。
しかし、それはどこに「保存」されますか?haskellには状態がないと思いましたが、それはPathInfo
私たち自身のものですか、それともhappstackの一部ですか?
誰かがこれを説明できたら、ダミーのために?ありがとう。
haskell - 異なるリターンタイプをWebルートします
happstack -liteチュートリアルを実行する:
次のタイプの戻り値を持つ関数を作成しますServerPart Reponse
。
ただし、Webルートのクラッシュコースでは、関数はシグネチャを次のように変更します。
以前はServerPartTではなくServerPartがありませんでしたか?また、すべてのメソッドの型アノテーションを変更せずに、Webルートに切り替える簡単な方法はありますか?
haskell - Happstackを再コンパイルして自動リロードする方法はありますか?
現在、happstackを使用してビルドする場合.exe
、テンプレートまたはソースコードに変更を加えるたびに、プロジェクトを再コンパイルし、バイナリを(Windowsで)再起動する必要があります。
YesodやSnapのように、これを自動化できるツールはありますか?
PS:これはhappstackバグトラッカーに関する私の問題です。
haskell - バイト文字列を持つ HSP
ホーム プロジェクトでHSPに切り替えました。Haskell コードにコンパイルされる点が気に入っています。しかし、私のサーバーは出力に ByteString を使用しています。HSP に ByteString 出力を生成させる良い方法はありますか? 出力と HSP のソース コードを見るとわかるように、"Any string literal" :: String
文字列に対する明示的な型修飾がハードコーディングされています。
私の要点は、連結に遅延 ByteString を使用する方が String よりも高速であり、入力と出力が ByteString であるため、テンプレート化のためだけに String を使用する理由がないということです。
おそらくHSPに代わるものはありますか?