使用Warp 库,该setHost
函数将不接受动态String
值作为主机值,但它会对字符串文字非常满意:
> import Network.Wai.Handler.Warp
> apiHost = "0.0.0.0" :: String
> getHost $ setHost (read apiHost) defaultSettings
*** Exception: Prelude.read: no parse
> getHost $ setHost apiHost defaultSettings
<interactive>:16:19: error:
• Couldn't match type ‘[Char]’ with ‘HostPreference’
Expected type: HostPreference
Actual type: String
> getHost $ setHost "0.0.0.0" defaultSettings
Host "0.0.0.0"
当值是字符串文字时,一切正常,但是当它是动态生成的字符串时,我找不到任何方法让它工作。这正是我需要的,因为主机值来自环境变量。