I've recently moved from golang net/http to fasthttp owing to rave reviews.
As you know, fasthttp doesn't use (w http.ResponseWriter) but only one syntax which is (ctx *fasthttp.RequestCtx).
I tried using ctx.Write but it didn't work.
So, how can I implement http.ResponseWriter in the code below to excute my html templates? Please also give some explanation so that we could all benefit.
Much Thanks for your help!
package main()
import (
"html/template"
"fmt"
"github.com/valyala/fasthttp"
)
type PageData struct {
Title string
}
func init() {
tpl = template.Must(template.ParseGlob("public/templates/*.html"))
}
m := func(ctx *fasthttp.RequestCtx) {
switch string(ctx.Path()) {
case "/":
idx(ctx)
default:
ctx.Error("not found", fasthttp.StatusNotFound)
}
}
fasthttp.ListenAndServe(":8081", m)
}
func idx(ctx *fasthttp.RequestCtx) {
pd := new(PageData)
pd.Title = "Index Page"
err := tpl.ExecuteTemplate(ctx.write, "index.html", pd)
if err != nil {
log.Println("LOGGED", err)
http.Error(ctx.write, "Internal server error", http.StatusInternalServerError)
return
}
}