私はYesodを使用して個人的なバックアップシステムを作成しています。私はハスケルに関しては比較的経験がないので、これがどれも最適ではないと確信しています。ここで入力に自動的に引用符が追加されました
が私のハンドラの1つである:
postHostR :: Text -> RcPath -> Handler Text
postHostR hostName f = do
hostId <- insertIfDontExist hostName
tBody <- (T.pack . show) <$> getRawRequest
time <- lift getCurrentTime
newId <- runDB $ insert $ RcFile hostId tBody (makePath f) time
return $ T.pack $ show newId
私がDBから取得したテキストのいずれかが二重引用符が自動的に追加されています。私はこれが何らかのXSSセキュリティであると仮定していますが、私はページをレンダリングしないので心配しません。引用符は実際にテキストの一部ではないようです(私は最初と最後の文字を取り除いてみましたが、引用符を実際には削除していないようです)。
ありがとうございます!
のせいですが、私は慣れていないんだよ。
(ここから伝えるのは難しいのです。その後、再び、私は型シグネチャについて完全に誤解される可能性があり)パッケージが含まれています。 'show'はどんなタイプですか?それぞれの呼び出しを '(show :: _)'に変更し、エラーを調べることで見つけることができます。 – dfeuer
ほとんどの間、 'newId'は' Text'か 'String'です。 'show" abc "==" \ "abc \" " –
確かに、どちらも正しいです。私は 'Text'型のものに' show'を行っていました。本当に行うべきことは 'unpack'を使って実際の文字列を得ることです。あなたの誰かがその質問に答えてくれますか? –