直接在SvelteKit中从Prisma获取数据

问题描述 投票:0回答:1

因此,我尝试在不使用 API 的情况下将数据直接从 Prisma 获取到 SvelteKit。 我知道这不是您通常会这样做的方式,而且我之前已经“正常”这样做了,但这次我想节省一些时间。

到目前为止我所做的工作,但是我必须重新加载页面才能第一次显示数据,并且在构建和预览它时它不起作用。 有更好的方法吗?

这是我的代码:

<script context="module" lang="ts">
    import {PrismaClient, type User} from '@prisma/client'

    if (typeof window === "undefined") {
        var allUsers: User[] = []
        const prisma = new PrismaClient()

        async function main() {
            allUsers = await prisma.user.findMany()
            console.log(allUsers)
        }

        main()
            .catch((e) => {
                throw e
            })
            .finally(async () => {
                await prisma.$disconnect()
            })
    }
</script>

<div>
    {#each allUsers as user}
            <p>{user.email}</p>
    {/each}
</div>
svelte prisma sveltekit
1个回答
1
投票

它无法正常工作,我建议将其移动到该页面的服务器:

+server.page.ts

Prisma 客户端依赖于 Node.js API,这在浏览器环境中不可用。如果你真的不想使用服务器,可能有一些黑客方法可以让它工作。

© www.soinside.com 2019 - 2024. All rights reserved.