gpt4 book ai didi

javascript - 如何访问Javascript对象中的窗口变量?

转载 作者:行者123 更新时间:2023-12-01 00:01:39 24 4
gpt4 key购买 nike

下面的代码正确吗?我想访问 javascript 对象中的 window 变量。

export const configs={
//firebase configuration
apiKey: window._env_.API_KEY,
projectId: window._env_.PROJECT_ID,
messagingSenderId: window._env_.MESSAGING_SENDER_ID,
backendURL: window._env_.BACKEND_URL
}

最佳答案

如果此代码在浏览器中执行,则 window 可用作全局对象。但是,如果此代码在节点环境(服务器端)中执行,window 将是未定义的。

如果您的代码将同时执行服务器端(节点环境)和客户端(浏览器环境),那么这是处理此问题的一种方法:

if (typeof window !== 'undefined') {
configs = {
//firebase configuration
apiKey: window._env_.API_KEY,
projectId: window._env_.PROJECT_ID,
messagingSenderId: window._env_.MESSAGING_SENDER_ID,
backendURL: window._env_.BACKEND_URL
}
} else {
// handle server-side logic here
}

如果不需要在浏览器中执行此操作,最简单的方法是使用 process.env 而不是在窗口上设置这些变量。如果您确实在两个地方都需要这些变量(并且它们来自 process.env),这可能是另一个解决方案:

const env = typeof window === 'undefined' ? process.env : window._env_;

export const configs = {
//firebase configuration
apiKey: env.API_KEY,
projectId: env.PROJECT_ID,
messagingSenderId: env.MESSAGING_SENDER_ID,
backendURL: env.BACKEND_URL
}

关于javascript - 如何访问Javascript对象中的窗口变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60682955/

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