Как интегрировать sqlite3 в Sveltekit?
Я использую sqlite3 для большинства своих приложений fullstack (node / express, django / drf + svelte на переднем конце в качестве потребителя конечных точек api) и пытался выяснить, как интегрировать sqlite3.
Вот что я сделал
Я предполагаю, что вы знакомы со sveltekit. Для тех, кто новичок, вы можете попробовать Sveltekit.
Я установил модуль better-sqlite3
Созданный
database.js' file inside
src / lib 'папкаДобавлен следующий код:
импортировать sqlite из "better-sqlite3"
const DB = новый sqlite('./annadb.sqlite')
const schema = CREATE TABLE IF NOT EXISTS messages (id INTEGER NOT NULL PRIMARY KEY, заголовок TEXT NOT NULL);
DB.exec(схема)
экспорт БД по умолчанию
я создал
index.json.js
бэкэнд-точка для получения всех статей из базы данных внутри папки src / routes со следующим кодом:импортировать БД из '$ lib / database.js'
экспортировать асинхронную функцию get () {const article = await DB.prepare (ВЫБРАТЬ * ИЗ сообщений) .all ()
if (articles) {
return {
body: {
articles
}
}
}
}
Я использовал эту конечную точку внутри index.svelte (домашней страницы) следующим образом:
загрузка асинхронной функции экспорта ({выборка}) {const res = ожидание выборки (/index.json); if (res.ok) {return {props: {article: await res.json (),},}; } return {status: res.status, error: new Error("Не удалось загрузить"),}; }
Выбранные статьи затем используются следующим образом:
вывозить артикулы; пусть latestArticles = article.articles; console.log (статьи);
{#if latestArticles.length > 0}
{#each latestArticles as article}
<h2>{article.title}</h2>
{/each}
{:else}
<p>Articles are coming soon</p>
{/if}
**Это оно. **
2 ответа
index.json.ts
у меня почему-то не заработало. Я должен был изменить его наlist.json.ts
.
Кроме того, в этом обсуждении они изменили обработчик конечной точки на все GET в верхнем регистре .
Насколько я знаю, это синхронная библиотека.
Я заметил, что вы используете с
better-sqlite3
. Удаление
await
может решить вашу проблему.