前提・実現したいこと
『Go言語によるWebアプリケーション開発』で勉強しているものです。
第一章で作成するtraceパッケージを利用できなくてつまづいています。具体的に言うと、main.goでインポートするとエラーが出てしまいます。
このエラーの原因がわかる方、どうかアドバイスをください。
発生している問題・エラーメッセージ
cannot find package "mycode/trace" in any of: /usr/local/go/src/mycode/trace (from $GOROOT) /Users/username/go/src/mycode/trace (from $GOPATH)
該当のソースコード
package main
import (
"flag"
"log"
"net/http"
"os"
"path/filepath"
"sync"
"text/template"
"mycode/trace"
)
//templは1つのテンプレートを表す
type templateHandler struct {
once sync.Once
filename string
templ *template.Template
}
//ServeHTTPはHTTPリクエストを処理する
func (t *templateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
t.once.Do(func() {
t.templ =
template.Must(template.ParseFiles(filepath.Join("templates",
t.filename)))
})
t.templ.Execute(w, r)
}
func main() {
var addr = flag.String("addr", ":8080", "アプリケーションのアドレス")
flag.Parse() //フラグを解釈します
r := newRoom()
r.tracer = trace.New(os.Stdout)
http.Handle("/", &templateHandler{filename: "chat.html"})
http.Handle("/room", r)
//チャットルームを開始します
go r.run()
//webサーバーを起動します
log.Println("Webサーバーを開始します。ポート:", *addr)
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal("ListenAndServe:", err)
}
}
試したこと
Githubに置いてそこから参照してみましたが、それでもエラーが出ました。
補足情報(FW/ツールのバージョンなど)
Golangのバージョンは1.11を使用しています。
回答1件
あなたの回答
tips
プレビュー