mirror of
https://github.com/gofiber/fiber.git
synced 2025-05-31 11:52:41 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
d7dd49f01a
17
ctx.go
17
ctx.go
@ -12,11 +12,11 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@ -752,14 +752,21 @@ func (ctx *Ctx) Render(name string, bind interface{}) (err error) {
|
||||
} else {
|
||||
// Render raw template using 'name' as filepath if no engine is set
|
||||
var tmpl *template.Template
|
||||
var raw []byte
|
||||
raw := bytebufferpool.Get()
|
||||
defer bytebufferpool.Put(raw)
|
||||
// Read file
|
||||
if raw, err = ioutil.ReadFile(filepath.Clean(name)); err != nil {
|
||||
f, err := os.Open(filepath.Clean(name))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err = raw.ReadFrom(f); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = f.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
// Parse template
|
||||
// tmpl, err := template.ParseGlob(name)
|
||||
if tmpl, err = template.New("").ParseGlob(getString(raw)); err != nil {
|
||||
if tmpl, err = template.New("").Parse(raw.String()); err != nil {
|
||||
return err
|
||||
}
|
||||
// Render template
|
||||
|
18
ctx_test.go
18
ctx_test.go
@ -1054,6 +1054,24 @@ func Test_Ctx_Redirect(t *testing.T) {
|
||||
// // TODO
|
||||
// }
|
||||
|
||||
// go test -run Test_Ctx_Render_Go_Template
|
||||
func Test_Ctx_Render_Go_Template(t *testing.T) {
|
||||
t.Parallel()
|
||||
file, err := ioutil.TempFile(os.TempDir(), "fiber")
|
||||
utils.AssertEqual(t, nil, err)
|
||||
defer os.Remove(file.Name())
|
||||
_, err = file.Write([]byte("template"))
|
||||
utils.AssertEqual(t, nil, err)
|
||||
err = file.Close()
|
||||
utils.AssertEqual(t, nil, err)
|
||||
app := New()
|
||||
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
|
||||
defer app.ReleaseCtx(ctx)
|
||||
err = ctx.Render(file.Name(), nil)
|
||||
utils.AssertEqual(t, nil, err)
|
||||
utils.AssertEqual(t, "template", string(ctx.Fasthttp.Response.Body()))
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_Send
|
||||
func Test_Ctx_Send(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
Loading…
x
Reference in New Issue
Block a user