Beego: 怎麼在 c.ServeJSON() 後馬上停止

maplerichie發表於2019-01-02

正在學習用 Beego 開發一個API,還真的遇到蠻多問題的,最讓我煩的是 c.ServeJSON()  返回 JSON 後還會繼續下一行

type ResponseController struct {
    beego.Controller
}

func (c *ResponseController) Success(message string, httpCode int, data interface{}) {
    c.Ctx.Output.SetStatus(httpCode)
    c.Data["json"] = Response{IsSuccess: true, Message: message, Data: data}

    c.ServeJSON(ENCODING)
}

例子都是讓每個API都有自己的 c.ServeJSON(), 可是我想簡化程式碼,於是先了一個共用的 ResponseController , 結果發現 c.ServeJSON() 後不會停止執行下一行程式碼,有試過 c.Finish() 和 c.StopRun() 都不是理想的效果, 也有人說用 return, 可是如果在 Success() 這個加 return ,只會回去呼叫 Success() 的 func() 繼續執行程式碼

更多原創文章乾貨分享,請關注公眾號
  • Beego: 怎麼在 c.ServeJSON() 後馬上停止
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章