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"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
"log"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -752,14 +752,21 @@ func (ctx *Ctx) Render(name string, bind interface{}) (err error) {
|
|||||||
} else {
|
} else {
|
||||||
// Render raw template using 'name' as filepath if no engine is set
|
// Render raw template using 'name' as filepath if no engine is set
|
||||||
var tmpl *template.Template
|
var tmpl *template.Template
|
||||||
var raw []byte
|
raw := bytebufferpool.Get()
|
||||||
|
defer bytebufferpool.Put(raw)
|
||||||
// Read file
|
// 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
|
return err
|
||||||
}
|
}
|
||||||
// Parse template
|
// Parse template
|
||||||
// tmpl, err := template.ParseGlob(name)
|
if tmpl, err = template.New("").Parse(raw.String()); err != nil {
|
||||||
if tmpl, err = template.New("").ParseGlob(getString(raw)); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Render template
|
// Render template
|
||||||
|
18
ctx_test.go
18
ctx_test.go
@ -1054,6 +1054,24 @@ func Test_Ctx_Redirect(t *testing.T) {
|
|||||||
// // TODO
|
// // 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
|
// go test -run Test_Ctx_Send
|
||||||
func Test_Ctx_Send(t *testing.T) {
|
func Test_Ctx_Send(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user