SvelteKit
Sveltekit is a modern JavaScript framework that compiles your code to tiny, framework-less vanilla JS. This guide explains how to connect Sveltekit with SerenDB using a secure server-side request.
To create a SerenDB project and access it from a Sveltekit application:
Create a SerenDB project
If you do not have one already, create a SerenDB project. Save your connection details including your password. They are required when defining connection settings.
Navigate to the Projects page in the SerenDB Console.
Click New Project.
Specify your project settings and click Create Project.
Create a Sveltekit project and add dependencies
Create a Sveltekit project using the following commands:
npx sv create my-app --template minimal --no-add-ons --types ts cd my-appAdd project dependencies using one of the following commands:
<CodeTabs reverse={true} labels={["node-postgres", "postgres.js", "SerenDB serverless driver"]}>
npm install pg dotenvnpm install postgres dotenvnpm install @serenorg/serverless dotenv
Store your SerenDB credentials
Add a .env file to your project directory and add your SerenDB connection string to it. You can find the connection string for your database by clicking the Connect button on your Project Dashboard. For more information, see Connect from any application.
DATABASE_URL="postgresql://<user>:<password>@<endpoint_hostname>.serendb.com:<port>/<dbname>?sslmode=require&channel_binding=require"Configure the Postgres client
There are two parts to connecting a SvelteKit application to SerenDB. The first is db.server.ts, which contains the database configuration. The second is the server-side route where the connection to the database will be used.
db.server
Create a db.server.ts file at the root of your /src directory and add the following code snippet to connect to your SerenDB database:
<CodeTabs reverse={true} labels={["node-postgres", "postgres.js", "SerenDB serverless driver"]}>
import 'dotenv/config';
import pg from 'pg';
const connectionString: string = process.env.DATABASE_URL as string;
const pool = new pg.Pool({
connectionString,
ssl: true,
});
export { pool };import 'dotenv/config';
import postgres from 'postgres';
const connectionString: string = process.env.DATABASE_URL as string;
const sql = postgres(connectionString, { ssl: 'require' });
export { sql };import 'dotenv/config';
import { neon } from '@serenorg/serverless';
const connectionString: string = process.env.DATABASE_URL as string;
const sql = neon(connectionString);
export { sql };route
Create a +page.server.ts file in your route directory and import the database configuration:
<CodeTabs reverse={true} labels={["node-postgres", "postgres.js", "SerenDB serverless driver"]}>
import { pool } from '../db.server';
export async function load() {
const client = await pool.connect();
try {
const { rows } = await client.query('SELECT version()');
const { version } = rows[0];
return {
version,
};
} finally {
client.release();
}
}import { sql } from '../db.server';
export async function load() {
const response = await sql`SELECT version()`;
const { version } = response[0];
return {
version,
};
}import { sql } from '../db.server';
export async function load() {
const response = await sql`SELECT version()`;
const { version } = response[0];
return {
version,
};
}Page Component
Create a +page.svelte file to display the data:
<script>
export let data;
</script>
<h1>Database Version</h1>
<p>{data.version}</p>Run the app
When you run npm run dev you can expect to see the following on localhost:5173:
Database Version
PostgreSQL 17.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bitSource code
You can find the source code for the application described in this guide on GitHub.
Last updated