問題タブ [haskell-snap-framework]
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 - Snap: PreRun フックの正しい使い方
テンプレートが読み込まれる前に関数を実行する方法がわかりません。たとえば、Maybe 値を返す「authenticate」という関数があります。テンプレートが読み込まれる前に実行して、条件付きでリダイレクトしたい。PreRun および OnLoad フックがこれを行うべきだと思いますが、それらの使用方法がわかりません。
上記の例を実装するために、これらのフックの正しい使用法を誰かが示してもらえますか?
ありがとう
haskell - Snapで「runghc」を使用し、webhandler例外をスローしない。tryIOを使用してもエラーが発生します
snap内でrunGHCを使用して、コンパイル可能なコードのみを除外しようとしています。ただし、tryIOを使用していますが、コンパイルエラーが発生すると、空の文字列を返すだけでなく、Webハンドラーが例外をスローします。
ただし、コンパイルされない「コンテンツ」を渡すと、ハンドラーは次のように失敗します。
またはコンパイラエラーが何であれ。tryIO
私は例外を捕まえることになっていたと思いました。
haskell - 新規インストール中のSnapFrameworkコンパイルエラー
Snapを初めてインストールすると、次のエラーが発生します。最初にheistをインストールしようとしましたが、同じエラーが発生します。Ubuntu 12.04 32ビットデスクトップ(新しいインストール)とghc7.4.1を使用しています。
他の誰かがこのエラーを受け取りますか?解決?ありがとう。
haskell - Haskell を使用してサブドメイン ルーティングを行う方法
snapを使用するHakyllを使用して、ルーティングサーバーで作業を開始しました。チュートリアルの次のコードを指定すると、ルーティングを確認できますが、oneapp.mysite.com などの独自のサブドメインにいくつかの異なるアプリケーションを配置したいと考えています。これは、スナップまたは他の Haskell サーバーを使用して可能ですか?
haskell - スナップフレームワーク-多分片付けを繰り返す
私は(限られた)Haskellの知識をSnap Webフレームワークに適用し、何を構築できるかを確認しています。(おそらく存在しない)パラメーターを取得し、それをintに解析しようとしています。明らかに「たぶん」は私が欲しがっているものです。
以下のコードでAppHandler
は、次のように定義されていHandler App App
ます(チュートリアルでは現在何も見つかりませんが、2つのレベルの状態を持つモナドだと思います)。でB8
ありByteString.Char8
、readInt
戻りますMaybe(Int,ByteString)
以下のコードは機能しますが、おそらく呼び出しを連鎖させる方法があるはずです(おそらく、私はすでにモナドにいるので、MaybeTを介して)。次のステップは、解析されたIDに基づいてデータベースから行をフェッチすることであるため、連鎖は特に意味があります。もちろん、それは「多分a」も返します。明らかに、これは非常に一般的なパターンです。
runMaybeTを適用してみましたが、率直に言ってどのタイプを変更する必要があるのかがよくわからず、エラーがなくなることを期待してランダムに変更していました。それは変化し、行から行へと動き回ったが、そうではなかった。
Haskellを探索し始めたときよりもはるかに高いレベルで完全に失われているので、これを進歩として扱っています...
編集:kosmikusの答えを歩いて、うまくいけば私はそれを理解しました...
私はこれに向かって少しずつ努力していたと思いますがgetParam
、他のステップと同じブロック内に強制しようとし続けました。
3行目では、getParamの呼び出しがAppHandlerで行われています。であるraw_paramがありMaybe ByteString
ます。5行目では、ネストされたdoにいるので、バインディング(?)はMaybeモナド内で行われ、param
aByteString
またはgetのいずれかになり、残りのdoブロックは*Nothing
を短絡します。同様に、6行目では、pはIntであるか、または短絡しています。
6行目にp
はInt(たとえば42)が含まれており、7行目は。を返しJust 42
ます。になる4行目に戻りAppHandler (Just 42)
ます。現時点でAppHandlerが何であるかを気にする必要はありません-タイプはすべて満足しています。
これもタイプチェックであり、これを考え抜こうとしている人に役立つかもしれないいくつかのバリエーションがあります。
この場合、非実行バリエーションは実際には単純に見えます。考える必要があるのは、<$>
私が正しく読んでいる場合は、fmap
を適用しfst
てMaybe (Int,ByteString)
取得できるようにすることだけですMaybe Int
。
*正しく理解していれば、後続の各行にアクセスする必要がありますが、Nothingを返すだけなので、実際にはgotoスタイルのショートカットではありません。 Edit2:以下のkosmikusのコメントを参照してください-怠惰+右ネストは、各行を評価する必要がないことを意味します。
haskell - Snaplet から SnapletLens (スナップレットの初期化)
関数app :: SnapletInit App App
では、いくつかのフィールドを持つスナップレットを試しました。
後で同じ関数で:
コンパイラは次のように述べています。
SnapletLens
withを定義しようとしました
しかし、問題は、myex-snaplet の内容をいつ取得または設定するかということです。そして、myex のフィールドを参照する方法は? 私はいくつかのことを試しました
しかし、それらは app メソッドでは機能しませんでした。問題は、 Snaplet のフィールドにアクセスする方法Myex
です。レンズのmyFun
使用は簡単です。または、少なくともすべてがコンパイルされます。
非常によく似た別の回答を見ました。 スナップレットの初期化中にサブスナップレットを使用しますか?
でも、交換したら
と
コンパイラは今言う:
pgPool
上記のリンクでは、 は へのレンズであると仮定しましたpgs
。
br gsp
haskell - Heist で複数のスプライスで単一のリクエストごとの計算を使用する方法は?
2 つのカスタム タグ<x/>
と<y/>
. 各タグは にバインドされていHeist.Compiled.Splice
ます。これで、テンプレートはGET
特定のルートのリクエストごとにレンダリングされます。<x/>
ペアの最初の値に置き換え、同じペアの 2 番目の値に置き換える方法はあり<y/>
ますが、ペアを返す IO 計算は要求ごとに 1 回だけ実行されます (すべてではなく、そのルートでのみ実行されます)。テンプレートをまったく使用しない人もいるからです)?
haskell - Haskellとwebframeworks
私はアプリケーション(社内で使用するための退屈な会計ソフトウェア)の開発を開始し、それをWebベースにすることにしました。これにより、いくつかの問題が一度に解決されるからです。
Haskellが選択できるいくつかのWebフレームワーク(happstack、yesod、snap)を使用して、HTML、CSS、および巧妙に有線のJavaScriptを処理しなければならないという苦痛を再び感じ始めます。
うーん。
だから、私が思ったのは、AJAXのすべての方法を試して、CappuccinoまたはSproutCoreのいずれかでUIを実行することです。(SEOはここでは問題ではありません)。
しかし、今では、上記の3つのうちの1つのような本格的なWebフレームワークは本当に必要ありません。理論的には、JSONまたはXMLでラップされたデータを提供できるHTTPサーバーで十分です。
これらの3つのうちのいずれかを使用することにまだ意味がありますか?
そして何よりも、このアプローチはどれほど実行可能ですか?
ギュンター
haskell - nicEditor スナップレットの作り方 (いくつかの質問)
以下の例では、nicEditor を textarea にバインドするためのスナップレットを定義しています。次の質問は、以下の例に関連するだけでなく、おそらく他の同様のケースにも関連しています..
- 初心者は以下の指示に従うことができますか (明確にする方法)?
- 例で使用する手順を少なくしたり、単純にしたりするにはどうすればよいですか? (以下とほぼ同じ内容で可能でしょうか?)
- これは解釈されたスプライスを使用しました。可能であれば、スナップレットもコンパイルされたスプライスを提供する必要がありますか?
- スナップレットは、通常の状況に対してデフォルトのハンドラーまたはいくつかのハンドラーを提供する可能性があります。また、ハンドラーは以下の「SnapNic.hs」で定義できます。ユーザーへの何らかのコールバック メカニズムですか?
--
haskell - Snap を使用してクライアント証明書を確認する方法
めったに使用されないことはわかっていますが、Snap でクライアント証明書にアクセスすることは可能ですか?
そうでない場合、別の Web スタックを使用することは可能ですか?