私はほとんどのフルスタック アプリケーション (node/express、django/drf + api エンドポイントのコンシューマーとしてのフロント エンドの svelte) に sqlite3 を使用しており、sqlite3 を統合する方法を見つけようとしています。
これが私がしたことです
あなたは sveltekit に精通していると思います。初めての方は、SvelteKitをご覧ください。
- better-sqlite3モジュールをインストールしました
- フォルダ内に作成された
database.js
ファイルsrc/lib
- 次のコードを追加しました。
import sqlite from 'better-sqlite3'
const DB = new sqlite('./annadb.sqlite')
const schema = `CREATE TABLE IF NOT EXISTS posts(
id INTEGER NOT NULL PRIMARY KEY,
title TEXT NOT NULL
)`;
DB.exec(schema)
export default DB
- 次のコードを使用して、フォルダー
index.json.js
内のデータベースからすべての記事を取得するエンドポイントを作成しました。src/routes
import DB from '$lib/database.js'
export async function get() {
const articles = await DB.prepare('SELECT * FROM posts').all()
if (articles) {
return {
body: {
articles
}
}
}
}
- そのエンドポイントを index.svelte (ホームページ) 内で次のように使用しました。
<script context="module">
export async function load({ fetch }) {
const res = await fetch(/index.json);
if (res.ok) {
return {
props: {
articles: await res.json(),
},
};
}
return {
status: res.status,
error: new Error("Could not load"),
};
}
</script>
- 取得した記事は、次のように使用されます。
<script>
export let articles;
let latestArticles = articles.articles;
console.log(articles);
</script>
<main>
{#if latestArticles.length > 0}
{#each latestArticles as article}
<h2>{article.title}</h2>
{/each}
{:else}
<p>Articles are coming soon</p>
{/if}
</main>
それでおしまい。