From e46e29aa7d8d11250511e3e6ed1b0f34400618ff Mon Sep 17 00:00:00 2001 From: syumai Date: Sun, 26 Feb 2023 12:26:48 +0900 Subject: [PATCH] update d1-blog-server example --- examples/d1-blog-server/Makefile | 2 +- examples/d1-blog-server/app/handler.go | 12 +++++++++--- examples/d1-blog-server/go.mod | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/d1-blog-server/Makefile b/examples/d1-blog-server/Makefile index 29bbe28..c9d7430 100644 --- a/examples/d1-blog-server/Makefile +++ b/examples/d1-blog-server/Makefile @@ -3,7 +3,7 @@ dev: wrangler dev .PHONY: build -build-tinygo: +build: mkdir -p dist tinygo build -o ./dist/app.wasm -target wasm ./main.go diff --git a/examples/d1-blog-server/app/handler.go b/examples/d1-blog-server/app/handler.go index 477014c..8675314 100644 --- a/examples/d1-blog-server/app/handler.go +++ b/examples/d1-blog-server/app/handler.go @@ -9,6 +9,7 @@ import ( "time" "github.com/mailru/easyjson" + "github.com/syumai/workers/cloudflare/d1" _ "github.com/syumai/workers/cloudflare/d1" // register driver "github.com/syumai/workers/examples/d1-blog-server/app/model" "github.com/syumai/workers/internal/jsutil" @@ -23,10 +24,15 @@ func NewArticleHandler() http.Handler { } func (h *articleHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { - db, err := sql.Open("d1", "BlogDB") + // initialize DB. + // D1 connector requires request's context to initialize DB. + c, err := d1.OpenConnector(req.Context(), "BlogDB") if err != nil { h.handleErr(w, http.StatusInternalServerError, fmt.Sprintf("failed to initialize DB: %v", err)) } + // use sql.OpenDB instead of sql.Open. + db := sql.OpenDB(c) + switch req.Method { case http.MethodGet: h.listArticles(w, req, db) @@ -62,7 +68,7 @@ func (h *articleHandler) createArticle(w http.ResponseWriter, req *http.Request, CreatedAt: uint64(now), } - _, err := db.ExecContext(req.Context(), ` + _, err := db.Exec(` INSERT INTO articles (id, title, body, created_at) VALUES (?, ?, ?, ?) `, article.ID, article.Title, article.Body, article.CreatedAt) @@ -84,7 +90,7 @@ VALUES (?, ?, ?, ?) } func (h *articleHandler) listArticles(w http.ResponseWriter, req *http.Request, db *sql.DB) { - rows, err := db.QueryContext(req.Context(), ` + rows, err := db.Query(` SELECT id, title, body, created_at FROM articles ORDER BY created_at DESC; `) diff --git a/examples/d1-blog-server/go.mod b/examples/d1-blog-server/go.mod index 1fade1d..92d0eed 100644 --- a/examples/d1-blog-server/go.mod +++ b/examples/d1-blog-server/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/mailru/easyjson v0.7.7 - github.com/syumai/workers v0.0.0-00010101000000-000000000000 + github.com/syumai/workers v0.9.0 ) replace github.com/syumai/workers => ../../