hono framework connect d1 sql database
#hono#cloudflare214 วันที่แล้ว

hono framework connect d1 sql database

เราไปดูวิธีการใช้ hono framework ที่รันใน cloudflare workers แล้วทำการเชื่อมต่อ database โดยเราจะใช้ d1 sql database ของ cloudflare กันครับ

ก่อนอื่นเราก็ไปสร้าง database กันครับ โดยเข้าไปที่ cloudflae แล้วไปที่ Workers & Pages จากนั้นเลือก D1 SQL Database

ทำการสร้าง database ให้เรียบร้อยตามต้องการ

จากนั้นเราก็ไปที่ hono project ของเราคับ เราจะไปเชื่อมต่อกันก่อน โดยทำการ config ที่ไฟล์ wrangler.toml คับ โดยจะเพิ่มในส่วนของ d1_databases เข้าไป ตามตัวอย่างโค้ดด้านล่าง

[[d1_databases]]
binding = "DB"
database_name = "doesystem"
database_id = "xxxxx"
preview_database_id = "xxxxx"

ตรงส่วน xxxxx คือ database id คับ ให้เราไปเอามาจาก cloudflare แล้วเข้าไปที่ d1_databases

ทีนี้เราลองไปเขียนโค้ด connect กันดูครับ

import { Hono } from "hono";

// This ensures c.env.DB is correctly typed
type Bindings = {
  DB: D1Database;
};

const app = new Hono<{ Bindings: Bindings }>();

// Accessing D1 is via the c.env.YOUR_BINDING property
app.get("/query/users/:id", async (c) => {
  const userId = c.req.param("id");
  try {
    let { results } = await c.env.DB.prepare(
      "SELECT * FROM users WHERE user_id = ?",
    )
      .bind(userId)
      .all();
    return c.json(results);
  } catch (e) {
    return c.json({ err: e.message }, 500);
  }
});

// Export our Hono app: Hono automatically exports a
// Workers 'fetch' handler for you
export default app;

แหล่งอ้างอิง https://developers.cloudflare.com/d1/examples/d1-and-hono/