关于可怕的Haskell Web框架的简单问题

前端之家收集整理的这篇文章主要介绍了关于可怕的Haskell Web框架的简单问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑最简单的scotty应用程序:
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty

import Data.Monoid (mconcat)

main = scotty 3000 $do
    get "/:word" $do
        beam <- param "word"
        html $mconcat ["<h1>Scotty,",beam," me up!</h1>"]

我将这段代码放入app.hs并用GHC编译.我用./app运行.简单.

>人们访问网站真的会发生什么?这只是一个./app正在运行.每当用户触发获取“/:word”$do行时,是否会在同一个应用程序内创建一个新线程?有多少这样的线程可以存在?千?万?
>运行后./app显示消息设置phasers stun …(端口3000)(ctrl-c退出).但它没有显示出来.它不输出传入的Web请求.我怎么能做到这一点这对于记录目的将是有用的.

解决方法

假设您正在使用GHC,对scotty服务器的每个请求都基本上创建了一个由GHC运行时安排的“绿色线程”.你一次可以轻松拥有数以千计的人.

Scotty本身没有进行任何请求日志记录,但是由于它建立在WAI之上,所以您可以使用任何存在的中间件组件,例如RequestLogger.

{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
import Network.Wai.Middleware.RequestLogger

import Data.Monoid (mconcat)

main = scotty 3000 $do
    middleware logStdoutDev

    get "/:word" $do
        beam <- param "word"
        html $mconcat ["<h1>Scotty," me up!</h1>"]

猜你在找的HTML相关文章