@vGrabko99
html, css, js, php, golang, mysql

Как исправить вывод?

Вот читаю я содержание файла и прогоняю через встроенный шаблонизатор. Ошибка в том что когда заходишь с браузера то вместо того что бы что то вывести на экран оно выводит в консоль.
Собственно код
package main

import (
	"net/http"
	"io/ioutil"
    "html/template"
    "os"
    "fmt"
)

func hello(res http.ResponseWriter, req *http.Request) {
    	
	bs, err := ioutil.ReadFile("TestPage.txt")
    if err != nil {
        return
    }
    str := string(bs)
    t := template.New("Test Template")       
    t, _ = t.Parse(str)  
    
    p:= map[string]string{
    "H": "Hydrogen",
    "He": "Helium",
    }
    
    template := t.Execute(os.Stdout, p) ////По моему ошибка в этой строке. Но как исправить незнаю.
    
    res.Header().Set(
        "Content-Type", 
        "text/html",
    )
     fmt.Println(template)
    
}


func main() {
	    
    http.HandleFunc("/hello", hello)
    http.ListenAndServe(":8080", nil)
}
  • Вопрос задан
  • 153 просмотра
Решения вопроса 3
@FireGM
template.Execute() - эта функция и записывает куда вам надо. Первым аргументом отдаёте куда писать, вторым какие данные в шаблоне доступны. Т.е. мы в него отправляем http.ResponseWriter, а вторым ваше отображение "p".

package main

import (
	"html/template"
	"io/ioutil"
	"net/http"
)

func hello(res http.ResponseWriter, req *http.Request) {

	bs, err := ioutil.ReadFile("TestPage.txt")
	if err != nil {
		return
	}
	str := string(bs)
	t := template.New("Test Template")
	t, _ = t.Parse(str)

	p := map[string]string{
		"H":  "Hydrogen",
		"He": "Helium",
	}

	res.Header().Set(
		"Content-Type",
		"text/html",
	)
	t.Execute(res, p)

}

func main() {

	http.HandleFunc("/hello", hello)
	http.ListenAndServe(":8080", nil)
}
Ответ написан
mututunus
@mututunus
Backend developer (Python, Golang)
t.Execute(res, p)
Ответ написан
Комментировать
@mantyr
Пишу много Golang кода с удовольствием:)
Читайте документацию, там действительно всё есть - нужно лишь потратить время и привыкнуть к особенностям языка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы