2

Haskell を使用して簡単な Web アプリケーションを作成しています。最初は前に Snap を使用し、アプリケーションを実行できましたが、アプリケーションにユーザー入力を追加したいと考えています。
関数へのユーザー入力パラメーターを取得する方法が見つかりませんでした。どうすればそれを行うことができますか?

他にも、Happstack フレームワークも使用していましたが、「Happstack.Server」をインポートできません。私は cabal インストール構成 Happstack を使用します。正常にインストールされましたが、「Happstack.Server」にインポートしようとすると、エラーが発生します。

<no location info>:
Could not find module `Happstack.Server':
  it is not a module in the current program, or in any known package.

を使用してプログラムを実行するghc --make HelloWorld.hs -vと、次のようになります。

Glasgow Haskell Compiler, Version 6.12.1, for Haskell 98, stage 2 booted by GHC version 6.12.1
Using binary package database: /usr/lib/ghc-6.12.1/package.conf.d/package.cache
Using binary package database: /home/udeshika/.ghc/i386-linux-6.12.1/package.conf.d/package.cache
package happstack-6.0.0-0f0c2507d590ebd01e8601c8667ec809 is unusable due to missing or recursive dependencies:
  happstack-ixset-6.0.0-4e1b5476a551c4501c5734b22e0b280d happstack-server-6.0.3-6d71e7bb09489130538fb851a694b927 happstack-state-6.0.0-0e753e61d7092b6a5139e473113877a1 happstack-util-6.0.0-4156bd1331b7a0d62e0087101c9eba1c
package happstack-ixset-6.0.0-4e1b5476a551c4501c5734b22e0b280d is unusable due to missing or recursive dependencies:
  happstack-util-6.0.0-4156bd1331b7a0d62e0087101c9eba1c
package happstack-server-6.0.3-6d71e7bb09489130538fb851a694b927 is unusable due to missing or recursive dependencies:
  happstack-util-6.0.0-4156bd1331b7a0d62e0087101c9eba1c hslogger-1.1.4-90c801c802eec92e4e6a6f83d24d58d9 network-2.2.1.7-72dad7eb07ee7a683982f7475b8a449f network-bytestring-0.1.3.4-937fd511949a2d5ef21e86ec5306c791 sendfile-0.7.3-137cf51cc81a277d724637a7cd1e6b09
package happstack-state-6.0.0-0e753e61d7092b6a5139e473113877a1 is unusable due to missing or recursive dependencies:
  happstack-util-6.0.0-4156bd1331b7a0d62e0087101c9eba1c hslogger-1.1.4-90c801c802eec92e4e6a6f83d24d58d9
package happstack-util-6.0.0-4156bd1331b7a0d62e0087101c9eba1c is unusable due to missing or recursive dependencies:
  hslogger-1.1.4-90c801c802eec92e4e6a6f83d24d58d9 network-2.2.1.7-72dad7eb07ee7a683982f7475b8a449f
package hslogger-1.1.4-90c801c802eec92e4e6a6f83d24d58d9 is unusable due to missing or recursive dependencies:
...................
4

3 に答える 3

4

Snap のgetParam関数を使用すると、ユーザーが指定した HTTP リクエスト パラメータを取得できます。これらは、フォーム送信の投稿本文またはクエリ文字列から取得できます。たとえば、次のコードを考えてみましょう。

site = dir "mypage" pageHandler
pageHandler = do
    val <- getParam "foo"
    writeBS $ maybe "no value" id val

「myapp.com/mypage?foo=bar」という URL を要求すると、応答として「bar」が表示されます。「?foo=bar」の部分を省略すると、「値なし」が返されます。

于 2011-04-21T16:07:44.607 に答える
3

1) Happstack が実際にインストールされ、公開されていることを確認します。

ghc-pkg list | grep Happstack

2) Happstack.Server を ghci にインポートしようとするとどうなりますか?

3)そのようなものをインストールしてサンドボックスを作成するには、cabal-devまたはcapriを使用することをお勧めします

4) Snap と Yesod は非常に新しいものであり、開発が活発に行われています。Happstack はかなり安定しており、安定しています。

5) 使用している OS は何ですか? Haskell をどのようにインストールしましたか? Ubuntu + haskell 6.12 + Happstack はすぐに使用できます

ログに関しては、どうやらcabalパッケージが台無しになっているようです。ここで説明するように、.cabal と .ghc からすべてのパッケージを削除し、cabal を再インストールしてから、cabal-dev をインストールすることをお勧めします。

http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dependency_problems/

そして、Happstack を楽しんでください。一部の人は実際にカプリを使用していますが、それも機能します。

于 2011-04-21T08:58:06.330 に答える