Use a buffer in Render

这个提交存在于:
Nise Void 2018-11-30 14:48:29 +01:00
父节点 890ff550eb
当前提交 717c6f65fc
由未授信的用户签名: NiseVoid
GPG 密钥 ID: FBA14AC83EA602F3

查看文件

@ -1,7 +1,9 @@
package router
import (
"bytes"
"encoding/json"
"io"
"net/http"
"github.com/julienschmidt/httprouter"
@ -76,9 +78,16 @@ func (c *Context) Render(code int, template string, data interface{}) error {
panic(`Cannot call render without a renderer set`)
}
var b bytes.Buffer
err := c.router.Renderer.Render(&b, template, data, c)
if err != nil {
return err
}
c.Response.Header().Set(`Content-Type`, `text/html`)
c.Response.WriteHeader(code)
return c.router.Renderer.Render(c.Response, template, data, c)
_, _ = io.Copy(c.Response, &b)
return nil
}
// Set sets a value in the context. Set is not safe to be used concurrently