GoでToDoアプリを作ってる -2-
2025/8/14
前回から引き続き進めた。
今回やったのは主に以下
- 前回出てたDB接続の問題解消
- TODOのCRUDができるようにした
- フロント整えた

DB接続
割と単純な解決で、DB接続のpackageで宣言していたdbClientの変数をエクスポートできる形にして、APIの方で呼べばOKだった
// mysql.go
var DBClient *sql.DB
// api.go
import "github.com/andnandna/todo-app-go-react/database"
~~~
rows, err := database.DBClient.Query("SELECT * FROM tasks")
ただいちいち database.DBClient
って書かないといけないのが冗長なので、今度はこれをどうにかしたい。(未解決)
TODOのCRUD
APIはシンプルに渡された値などで更新などできる形までやった。
例でCREATE部分だけ
// api.go
func createTasks(context *gin.Context) {
var newTask Task
if err := context.BindJSON(&newTask); err != nil {
context.IndentedJSON(http.StatusInternalServerError, err)
}
_, err := database.DBClient.Exec("INSERT INTO tasks (title, isCompleted) VALUES (?, ?)", newTask.Title, false)
if err != nil {
context.IndentedJSON(http.StatusInternalServerError, err)
}
context.IndentedJSON(http.StatusCreated, nil)
}
フロント整えた
ちょっと面倒&今回はGoの学習が中心という理由で、ほぼAIに書かせたので特にコメントなし!
今後
ほんとに簡単なものでGoで作ってみようというのが目的なので、機能的には一旦これで終わりでいいかなと思っている。
この後はファイル/ディレクトリ構成を見直してみたり、ORM入れたり(Gormかなぁ)、テスト書いたり(書くとこあんま無いけど)、などしていきたい。
おわり