标签: yesod

将AJAX与warp HTTP服务器一起使用

我在尝试理解WARP如何与客户端进行交互时遇到了一些麻烦.如果我是通过WARP构建我的服务器端,并且有一个Javascript客户端.我可以假设使用AJAX作为客户端和服务器端之间的桥梁吗?

haskell yesod haskell-warp

1
推荐指数
1
解决办法
1040
查看次数

Snap Web框架和OSX路径

前言:OSX开发的新手.

cabal安装快照 - 这很好用.

当我键入snap到终端时没有任何反应.如何将我的快照路径导出到OSX中的$ PATH?

同样的事情发生在happstack和yesod ....这些都安装了

macos haskell yesod haskell-snap-framework

1
推荐指数
1
解决办法
529
查看次数

在yesod博客示例中无法匹配预期类型

我试图让博客示例运行,但是某些处理函数中的类型存在问题,我不知道如何修复它.

我试图运行的例子发布在这里: Yesod博客示例 我改变了一点,我将类型添加到defaultLayout函数并使其成为Yesod的实例以摆脱双重定义.

defLayout :: GWidget a Blog () -> GHandler a Blog RepHtml
defLayout inside = do
  mmsg <- getMessage
  pc <- widgetToPageContent $ do
      toWidget [lucius|
body {
width: 760px;
margin: 1em auto;
font-family: sans-serif;
}
textarea {
width: 400px;
height: 200px;
}
#message {
color: #900;
}
|]
      inside 
  hamletToRepHtml [hamlet|
$doctype 5
<html>
    <head>
        <title>#{pageTitle pc}
        ^{pageHead pc}
    <body>
        $maybe msg <- mmsg
            <div #message>#{msg}
        ^{pageBody pc}
|]

instance Yesod Blog where
    approot = ApprootStatic …
Run Code Online (Sandbox Code Playgroud)

haskell types yesod

1
推荐指数
1
解决办法
638
查看次数

改进冗长的Haskell Monadic代码

以下函数是Yesod REST服务器的一部分,通过电子邮件地址在MongoDB数据库中搜索现有用户,并返回Maybe User:

{-# LANGUAGE DeriveGeneric #-}

module Model.User where

import           Database.MongoDB (Action, findOne, select, (=:))
import qualified Database.MongoDB as M
import           GHC.Generics     (Generic)
import           Import

data User = User
  { userEmail     :: Text
  , userFirstName :: Text
  , userLastName  :: Text
  } deriving (Generic, Show)

collection :: Text
collection = "users"

instance FromJSON User
instance ToJSON User

findForEmail :: Text -> Action IO (Maybe User)
findForEmail email = do
  maybeDocument <- findOne (select [ "email" =: email …
Run Code Online (Sandbox Code Playgroud)

monads haskell composition yesod

1
推荐指数
1
解决办法
122
查看次数

如何回应Yesod中Key的值?

我正在为Yesod中的资源编写REST API.我有一个POST方法应该尝试创建给定的资源,如果成功返回201和新创建的资源的ID.例如,

postResourceR :: Handler String
postResourceR = do
  id <- runDB $ insert Resource
  sendResponseStatus status201 id -- DOES NOT COMPILE
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误,这很简单:

No instance for (ToTypedContent (Key Resource))
  arising from use of 'sendResponseStatus'
Run Code Online (Sandbox Code Playgroud)

我知道我想要的东西ToTypedContent,但我找不到任何方法从KeyDatabase.Persist.Class中获取它.任何帮助将不胜感激.

编辑:

这是实际资源的定义:

Notification
    title Text
    content Text
    icon Text Maybe
    action Text Maybe 
    created UTCTime
    updated UTCTime
    deriving Show
Run Code Online (Sandbox Code Playgroud)

haskell yesod haskell-persistent

1
推荐指数
1
解决办法
111
查看次数

Yesod css - 不在范围变量中

我从模板初始化 Yesod 项目。我在 Foundation.hs 尝试更改 css 变量时出错

$ stack new s1 yesod-simple
$ cd s1
$ mv static/css/bootstrap.css static/css/style.css
Run Code Online (Sandbox Code Playgroud)

改变基础.hs

pc <- widgetToPageContent $ do
    addStylesheet $ StaticR css_bootstrap_css
    $(widgetFile "default-layout")
Run Code Online (Sandbox Code Playgroud)

     pc <- widgetToPageContent $ do
         addStylesheet $ StaticR css_style_css
         $(widgetFile "default-layout")

$ stack build
...
[4 of 8] Compiling Foundation       ( Foundation.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/Foundation.o )

Foundation.hs:64:37: Not in scope: ‘css_style_css’
Run Code Online (Sandbox Code Playgroud)

但据我所知,在编译时 css_style_css 应该会自动出现。我做错了什么?如果我们需要在默认布局中添加几个 css 文件,我该怎么办?

haskell yesod

1
推荐指数
1
解决办法
385
查看次数

Yesod - 获取实体价值的功能

看一看:

myEntity :: Entity Post
myEntity = ...

myValue :: Entity Post -> Post
myValue = <someFunction>

myKey :: Entity Post -> PostId
myKey = <someOtherFunction>
Run Code Online (Sandbox Code Playgroud)

someFunctionsomeOtherFunction存在于yesod还是我需要创建它们?

haskell yesod

1
推荐指数
1
解决办法
494
查看次数

Haskell - 模块内的模块

我有一个这样的模块:

module Model where

import FlowType
  .
  . 
  .
Run Code Online (Sandbox Code Playgroud)

我正在使用FlowTypeinModel的主体,但我也想与模型的函数 FlowType 一起导出。我找到了一个具有以下语法的模块:

module Import
  ( module Import
  ) where

import Foundation as Import
  .
  . 
  .
Run Code Online (Sandbox Code Playgroud)

这是什么module Import ( module Import) where???我如何在我的Model模块中做同样的事情(并导出它自己的函数)?

haskell module yesod

1
推荐指数
1
解决办法
388
查看次数

使用 Yesod 生成服务器端图像(二维码)并将其显示在页面上

我希望能够生成任意二维码并将它们显示在网页上,该网页将由 Yesod 提供服务。

我真的没有任何代码可以共享,因为我不知道如何链接那里的 QR 代码生成/图表库,然后输出可以在页面上提供的图像。

有没有人有任何指示?

haskell qr-code yesod

1
推荐指数
1
解决办法
228
查看次数

如何使用客户端ID和环境变量中的机密配置Google OAuth?

我希望我的应用程序的客户端ID和密码ID不属于我的源代码.因此,如果我在运行时从环境变量中读取这些设置,它们将始终包含在IO中.这会导致问题,因为他们将无法撰写:

authPlugins :: master -> [AuthPlugin master]
authGoogleEmail :: YesodAuth m => Text -> Text -> AuthPlugin m
getEnv :: String -> IO String
Run Code Online (Sandbox Code Playgroud)

提出这个问题的另一种方法是:如何在http://www.yesodweb.com/book/authentication-and-authorization中给出的第一个示例代码中读取clientIdclientSecret从环境中读取

monads haskell yesod

1
推荐指数
1
解决办法
314
查看次数