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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了閻良免費(fèi)建站歡迎大家使用!
相關(guā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ū)的數(shù)據(jù)輸出到客戶端并清空緩沖區(qū)。
舉個例子:
我們通過后置中間件統(tǒng)一對返回的數(shù)據(jù)做處理,如果服務(wù)方法產(chǎn)生了異常,那么不能將敏感錯誤信息推送到客戶端,而統(tǒng)一設(shè)置錯誤提示信息。
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("服務(wù)器居然開小差了,請稍后再試吧!")
}
}
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 可以看到,頁面輸出了:
服務(wù)器居然開小差了,請稍后再試吧! 標(biāo)題名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)返回-緩沖控制
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/cocgphi.html


咨詢
建站咨詢
