我正在使用haskell创建简单的web应用程序。首先,我在前面使用了Snap,并且能够运行应用程序,但我希望向应用程序添加用户输入。
我找不到一种方法来获得函数的用户输入参数。我该怎么做呢?
另外,我也使用了Happstack框架,我不能导入"Happstack.Server“。我使用cabal installation 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:
...................发布于 2011-04-22 00:07:45
Snap的getParam函数允许您获取用户指定的HTTP请求参数。它们可以来自表单提交的post正文,也可以来自查询字符串。例如,考虑以下代码:
site = dir "mypage" pageHandler
pageHandler = do
val <- getParam "foo"
writeBS $ maybe "no value" id val如果我请求url "myapp.com/mypage?foo=bar",那么我将看到"bar“作为响应。如果我省略了"?foo=bar“部分,那么它将返回"no value”。
发布于 2011-04-21 16:58:06
1)检查Happstack是否已实际安装并公开:
ghc-pkg list | grep Happstack2)如果您尝试在ghci中导入Happstack.Server怎么办?
3)最好使用cabal-dev或capri来安装这些东西并制作沙箱。
4) Snap和Yesod是一个相当新的,它们正在进行大量的开发,Happstack非常稳定和可靠。
5)您使用的是什么操作系统?您是如何安装haskell的?Ubuntu + haskell 6.12 + Happstack开箱即用
关于日志,似乎是阴谋包搞乱了。我建议您从.cabal和.ghc中删除所有软件包,重新安装cabal,然后按照以下说明安装cabal-dev:
http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dependency_problems/
然后享受Happstack带来的乐趣。有些人实际上使用capri,它也很有效。
发布于 2011-04-22 00:15:20
你的安装搞砸了。不幸的是,阴谋有时会这样做。
最好的办法是使用'ghc-pkg unregister‘删除所有的happstack包、hslogger和sendfile。确保将它们从用户和全局包数据库中删除。(ghc-pkg列表将显示已安装的内容)。一旦你移除了旧的版本,就可以更新和安装happstack了。然后事情就会好起来了。
你说的“用户输入”是什么意思?你是说html表单吗?还是别的什么?
速成课程的这一部分可以满足您的需求:
http://www.happstack.com/docs/crashcourse/RqData.html
还可以将摘要函数与Happstack一起使用,以获得类型安全的表单处理。不幸的是,这还没有很好的文档。不过,我相信does functors源代码确实包含了一个有效的Happstack示例。
https://stackoverflow.com/questions/5740746
复制相似问题