gpt4 book ai didi

go - 如何在 golang 的网络应用程序中缓冲响应?

转载 作者:IT王子 更新时间:2023-10-29 00:52:28 27 4
gpt4 key购买 nike

我想制作一个能够正确捕获模板错误的 hello world 网络应用程序。所以我需要缓冲响应但不知道该怎么做。我已经把这段代码放在一起了。这是在 golang 中缓冲响应的方式吗?

func get_handler(w http.ResponseWriter, r *http.Request) {

buf := new(bytes.Buffer)
err := templates.ExecuteTemplate(buf, "hello.html", nil)
if err != nil {
fmt.Println(err.Error())
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Write([]byte(buf.String()))
}

最佳答案

bytes.Buffer 有一个 Bytes方法,因此您实际上不需要调用 String 并将其转换为 []byte:

w.Write(buf.Bytes())

此外,将错误写入 stderr 是一种很好的做法。只需将 fmt 替换为 log:

if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

关于go - 如何在 golang 的网络应用程序中缓冲响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568746/

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