← Cloudflare D1 / d1 / examples
Dotazování D1 z Hono
Hono je rychlý webový framework pro vytváření aplikací s důrazem na API a nabízí plnohodnotnou podporu pro Workers a Pages.
Při použití Workers:
- Ujistěte se, že máte nakonfigurovaný svůj Konfigurační soubor Wrangler pro navázání databáze D1 na váš Worker.
- K databázím D1 můžete přistupovat prostřednictvím Hono
Context↗ parametr: vazby ↗ jsou zpřístupněny nacontext.env. Pokud jste nakonfigurovali binding s názvemDB, pak byste přistupovali k D1 Workers Binding API metody prostřednictvímc.env.DB. - Více informací najdete v dokumentaci Hono k Cloudflare Workers ↗.
Pokud používáte Pages Functions:
- Navažte databázi D1 na svůj Pages Function.
- Předejte
--d1 BINDING_NAME=DATABASE_IDpříznak prowrangler devpři lokálním vývoji.BINDING_NAMEby mělo odpovídat volání ve vašem kódu aDATABASE_IDby měl odpovídatdatabase_iddefinované v konfiguračním souboru Wrangler, například--d1 DB=xxxx-xxxx-xxxx-xxxx-xxxx. - Více informací najdete v průvodci Hono k Cloudflare Pages ↗.
Následující příklady ukazují, jak přistupovat k databázi D1 připojené k DB ze skriptu Workers i z funkce Pages Function:
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)
.run();
return c.json(results);
} catch (e) {
return c.json({ err: "Failed to query user" }, 500);
}
});
// Export our Hono app: Hono automatically exports a
// Workers 'fetch' handler for you
export default app;import { Hono } from "hono";
import { handle } from "hono/cloudflare-pages";
// This ensures c.env.DB is correctly typed
type Bindings = {
DB: D1Database;
};
const app = new Hono<{ Bindings: Bindings }>().basePath("/api");
// 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)
.run();
return c.json(results);
} catch (e) {
return c.json({ err: "Failed to query user" }, 500);
}
});
// Export the Hono instance as a Pages onRequest function
export const onRequest = handle(app);