考虑最简单的 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
在运行。每当每个用户触发一行时,是否会在同一个应用程序中创建一个新线程get "/:word" $ do
?可以存在多少这样的线程?千?万?运行
./app
后显示消息Setting phasers to stun... (port 3000) (ctrl-c to quit)
。但它没有显示更多。它不输出传入的网络请求。我怎样才能让它做到这一点?这对于记录目的很有用。