gpt4 book ai didi

node.js - 如何在 Sveltekit 中集成 sqlite3?

转载 作者:行者123 更新时间:2023-12-04 11:44:03 26 4
gpt4 key购买 nike

我一直在将 sqlite3 用于我的大部分全栈应用程序(前端的 node/express、django/drf + svelte 作为 api 端点的使用者),并且一直在试图弄清楚如何集成 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>
    就是这样。

    最佳答案

    据我所知,better-sqlite3是一个同步库。
    我注意到你正在使用 awaitbetter-sqlite3 .删除 await可能会解决您的问题。

    关于node.js - 如何在 Sveltekit 中集成 sqlite3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66986056/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com