从 Svelte Kit 中的加载函数调用 prisma 客户端
Doing call to prisma client from load function in Svelte Kit
我正在使用 Prisma.io 编写数据库,并希望从 typescript 函数调用 Prisma 客户端。
我尝试使用 Svelte 套件的加载功能,并将调用写入隐藏的 _api.ts 文件,但没有成功。 Prisma 客户端抱怨它不能从浏览器 运行。我知道它应该只在服务器上以某种方式 运行 。将 Prisma 与 Svelte 套件一起使用并在服务器上 运行 调用的正确方法是什么?
Svelte 中的“加载”功能可能 运行 在服务器或浏览器中,所以这可能是错误的原因。
我建议您将 _api.ts 变成可调用端点。然后您需要确保 api.ts 导出一个名为 'get' 的函数(或其他方法)。更多信息在这里:https://kit.svelte.dev/docs#routing-endpoints
完成后,您应该能够直接浏览到 api 路由,并且您应该会在 api.ts 文件中看到 'get' 函数的结果。
然后,在您的“加载”函数中,您可以使用 'fetch' 方法访问该路由并获取数据。在 Svelte 中,fetch 方法适用于服务器和浏览器。 https://kit.svelte.dev/docs#loading-input-fetch
更新:
要执行 'POST' 个端点,您需要在端点文件中导出一个名为 'post' 的函数。我建议您 console.log 请求以查看调用端点时收到的数据:
export async function get(request) {
console.log(request);
return {
body: { success: true },
};
}
我正在使用 Prisma.io 编写数据库,并希望从 typescript 函数调用 Prisma 客户端。
我尝试使用 Svelte 套件的加载功能,并将调用写入隐藏的 _api.ts 文件,但没有成功。 Prisma 客户端抱怨它不能从浏览器 运行。我知道它应该只在服务器上以某种方式 运行 。将 Prisma 与 Svelte 套件一起使用并在服务器上 运行 调用的正确方法是什么?
Svelte 中的“加载”功能可能 运行 在服务器或浏览器中,所以这可能是错误的原因。
我建议您将 _api.ts 变成可调用端点。然后您需要确保 api.ts 导出一个名为 'get' 的函数(或其他方法)。更多信息在这里:https://kit.svelte.dev/docs#routing-endpoints
完成后,您应该能够直接浏览到 api 路由,并且您应该会在 api.ts 文件中看到 'get' 函数的结果。
然后,在您的“加载”函数中,您可以使用 'fetch' 方法访问该路由并获取数据。在 Svelte 中,fetch 方法适用于服务器和浏览器。 https://kit.svelte.dev/docs#loading-input-fetch
更新:
要执行 'POST' 个端点,您需要在端点文件中导出一个名为 'post' 的函数。我建议您 console.log 请求以查看调用端点时收到的数据:
export async function get(request) {
console.log(request);
return {
body: { success: true },
};
}