如何判断SvelteKit的“加载”功能是在服务器还是客户端上运行?

我正在尝试通过加载函数在 SvelteKit 页面中进行 API 调用,但我不想用本地端点代理这些调用,因为我想让 Web 服务器尽可能轻巧。

我特别想做的是,当从服务器调用时,API 的 URL 应该与从客户端调用时不同(例如“http://localhost:1234”与“https://example.js”)。 com:1234",分别)。

但是,比这更普遍的是,有没有办法区分当前代码是在服务器上还是在客户端上运行?

回答

load函数中,可以选择browser在从$app/env.

<script context="module">
    import { browser } from '$app/env'; 
    ...
    export async function load({ fetch }) {
        if (!browser) {
            // code here runs only on the server
        }
        return {
           ...
        }
    }
    ...
<script>

以下来自SvelteKit 的文档:

browser 是 true 还是 false 取决于应用程序是在浏览器中还是在服务器上运行


以上是如何判断SvelteKit的“加载”功能是在服务器还是客户端上运行?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>