Query D1 from SvelteKit
Query a D1 database from a SvelteKit application.
SvelteKit is a full-stack framework that combines the Svelte front-end framework with Vite for server-side capabilities and rendering. You can query D1 from SvelteKit by configuring a server endpoint with a binding to your D1 database(s).
To set up a new SvelteKit site on Cloudflare Pages that can query D1:
- Refer to the Svelte guide and Svelte’s Cloudflare adapter .
- Install the Cloudflare adapter within your SvelteKit project:
npm i -D @sveltejs/adapter-cloudflare. - Bind a D1 database to your Pages Function.
- Pass the
--d1 BINDING_NAME=DATABASE_IDflag towrangler devwhen developing locally.BINDING_NAMEshould match what call in your code, andDATABASE_IDshould match thedatabase_iddefined in your wrangler.toml: for example,--d1 DB=xxxx-xxxx-xxxx-xxxx-xxxx.
The following example shows you how to create a server endpoint configured to query D1.
- Bindings are available on the
platformparameter passed to each endpoint, viaplatform.env.BINDING_NAME. - With SvelteKit’s
file-based routing
, the server endpoint defined in
src/routes/api/users/+server.tsis available at/api/userswithin your SvelteKit app.
The example also shows you how to configure both your app-wide types within src/app.d.ts to recognize your D1Database binding, import the @sveltejs/adapter-cloudflare adapter into svelte.config.js, and configure it to apply to all of your routes.