DBの代わりにファイルを使用してプロトタイプを作成して実行しようとしています。私は、(1)既存のコンテンツをファイルから地図に読み込み、(2)地図にコンテンツを追加するJSON POST、(3)終了時にファイルに書き込むというプログラムがあります。Goでioutil.ReadFileから整列する内容のファイルがあるかどうかを確認する方法
まず、ファイルが作成されていません。それから私は空のファイルを作成しました。それは書かれていない。 ファイルを読み込み、既存のコンテンツがあるかどうかを確認しようとしています。既存のコンテンツがない場合は、空白のマップを作成します。既存のコンテンツがある場合は、新しいマップに非マーシャルします。
func writeDB() {
eventDBJSON, err := json.Marshal(eventDB)
if err != nil {
panic(err)
}
err2 := ioutil.WriteFile("/Users/sarah/go/dat.txt", eventDBJSON, 0777)
if err2 != nil {
panic(err2)
}
}
func main() {
dat, err := ioutil.ReadFile("/Users/sarah/go/dat.txt")
if err != nil {
panic(err)
}
if dat == nil {
eventDB = DB{
events: map[string]event{},
}
} else {
if err2 := json.Unmarshal(dat, &eventDB); err2 != nil {
panic(err2)
}
}
router := httprouter.New()
router.POST("/join", JoinEvent)
router.POST("/create", CreateEvent)
log.Fatal(http.ListenAndServe(":8080", router))
defer writeDB()
}