gpt4 book ai didi

haskell - 将数据放入请求库的中间件

转载 作者:行者123 更新时间:2023-12-04 15:23:39 26 4
gpt4 key购买 nike

我正在尝试编写一个 WAI 中间件,将一些数据放入请求的保险库中,但似乎我遗漏了一些东西,因为我以后无法查找它。即使是最简单的中间件也会失败:

fooMW :: Middleware
fooMW app req sendResponse = do
k <- Vault.newKey @Int
let d = 42
newVault = Vault.insert k d (vault req)
app (req {vault = newVault}) $ \res -> sendResponse res

然后我这样使用:

main = scotty 3000 $ do
middleware fooMW
get "/foo" $ do
k <- liftIO $ Vault.newKey @Int
v <- vault <$> request
let d = Vault.lookup k v
liftIO $ print d
json $ object ["foo" .= ("bar" :: Text)]

当执行 http :3000/foo 时,我希望服务器打印 Just 42 但打印 Nothing,表明 Nothing 中有问题 fooMW。我想我遗漏了一些关于如何编写中间件或如何使用 vault 的重要信息,但是什么?

最佳答案

每次调用Vault.newKey都会产生不同的 key ,所以应该调用一次共享,而不是每次使用 key 都调用。谢谢@danidiaz

关于haskell - 将数据放入请求库的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62774760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com