Ich folge dem Golang.org Tutorial zum Erstellen einer Wiki-Seite (https://golang.org/doc/articles/wiki/#tmp_4) und alles läuft gut, bis ich die obige Fehlermeldung während des Schrittes "Using net/http, um Wiki-Seiten zu bedienen ". Ich habe eine text.txt-Datei in src/github.com/user/gowiki/test.txt, aber loadPage (title) scheint nicht auf die Datei test.txt zuzugreifen. Jede Hilfe wird sehr geschätzt. Vielen Dank!go loadPage Problem: Ungültige Speicheradresse oder Null Zeiger Dereferenz
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
type Page struct {
Title string
Body []byte
}
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
func loadPage(title string) (*Page, error) {
filename := title + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
return &Page{Title: title, Body: body}, nil
}
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
p, _ := loadPage(title)
fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body)
}
func main() {
http.HandleFunc("/view/", viewHandler)
http.ListenAndServe(":8080", nil)
}
ahhh, ich habe eine if-Anweisung erstellt, die zurückgegeben wird, wenn ein Fehler auftritt, und den Fehler jetzt gedruckt, um "test.txt öffnen: keine solche Datei oder Verzeichnis" anzuzeigen, dass loadPage() die Datei nicht finden kann. Ich spielte mit, wo die Datei gespeichert wird und wo ich den Server starte, und es lädt jetzt. Vielen Dank! – jj1111
@ jj1111 du bist willkommen. Sie sollten meine Antwort akzeptieren, wenn Sie damit zufrieden sind. –