0
golang.orgチュートリアルのwikiページ(https://golang.org/doc/articles/wiki/#tmp_4)の作成に従っていますが、上記のエラーメッセージが表示されるまではすべて " wikiページを提供するためのhttp "を参照してください。 src/github.com/user/gowiki/test.txtにtext.txtファイルがありますが、loadPage(title)はtest.txtファイルにアクセスしていないようです。どんな助けでも大歓迎です。ありがとう!go loadPage発行:無効なメモリアドレスまたはnilポインタの逆参照
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)
}
エラーがあった場合に返すif文を作成し、loadPage()がファイルを見つけることができないことを確認するために "open test.txt:no such file or directory"を表示するようにエラーを出力しました。私はファイルがどこに保存されているのか、どこからサーバーを起動したのか、それは今ロードします。ありがとう! – jj1111
@ jj1111よろしくお願いします。あなたがそれに満足すれば私の答えを受け入れるべきです。 –