新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame數據返回-緩沖控制
?Response?輸出采用了緩沖控制,輸出的內容預先寫入到一塊緩沖區(qū),等待服務方法執(zhí)行完畢后才真正地輸出到客戶端。該特性在提高執(zhí)行效率同時為輸出內容的控制提供了更高的靈活性。

網站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網頁設計、網站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了閻良免費建站歡迎大家使用!
相關方法:
func (r *Response) Buffer() []byte
func (r *Response) BufferLength() int
func (r *Response) BufferString() string
func (r *Response) Flush()
func (r *Response) SetBuffer(data []byte)其中?Output?作用類似于?Flush?將緩沖區(qū)的數據輸出到客戶端并清空緩沖區(qū)。
舉個例子:
我們通過后置中間件統(tǒng)一對返回的數據做處理,如果服務方法產生了異常,那么不能將敏感錯誤信息推送到客戶端,而統(tǒng)一設置錯誤提示信息。
package main
import (
"github.com/GOgf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"net/http"
)
func MiddlewareErrorHandler(r *ghttp.Request) {
r.Middleware.Next()
if r.Response.Status >= http.StatusInternalServerError {
r.Response.ClearBuffer()
r.Response.Writeln("服務器居然開小差了,請稍后再試吧!")
}
}
func main() {
s := g.Server()
s.Group("/api.v2", func(group *ghttp.RouterGroup) {
group.Middleware(MiddlewareErrorHandler)
group.ALL("/user/list", func(r *ghttp.Request) {
panic("db error: sql is xxxxxxx")
})
})
s.SetPort(8199)
s.Run()
}訪問 http://127.0.0.1:8199/api.v2/user/list 可以看到,頁面輸出了:
服務器居然開小差了,請稍后再試吧! 文章名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame數據返回-緩沖控制
文章鏈接:http://m.5511xx.com/article/cocgphi.html


咨詢
建站咨詢
