【发布时间】:2022-01-13 13:25:42
【问题描述】:
我正在创建一个 nextjs 网站。在我的 js 文件中,我正在获取 API 数据并通过 .env.local 文件分配令牌。但是当我尝试访问我创建的.env variable 时,它没有返回任何内容。我的意思是,它返回 empty/undefined。
我的 js 文件代码:
export async function getStaticProps() {
const response = await fetch(`https:/mywebsite.com?token=${process.env.PRAISES_TOKEN}`);
const body = await response.json();
console.log(body);
return {
props: {
naats: body
}
}
}
.env.local
PRAISES_TOKEN=MY_TOKEN
我的nextjs项目版本是12。
在我的 git bash 中,它像这样返回,没有变量值:
https://website.com?token=
更新:
我发现的是,当我将任何令牌/哈希分配给 env 变量时,变量返回未定义。如果我分配 https url,那么变量可以正常工作。所以,我虽然用https://website.com?token=jhasvdiasvdjkagdg8catscuas 之类的令牌分配完整的url,但它不起作用并返回未定义。变量仅适用于 https url 值,但没有参数。
这很奇怪。
有人可以帮我解决这个问题吗?我不想将我的token/api_token 暴露给浏览器/公众。
【问题讨论】:
-
您是否尝试过在 getstatisprops 函数之外记录您的环境?
-
另外,请记住在更改环境时重新启动服务器
-
@PCPbiscuit 是的,它在控制台日志中返回
undefined。我总是重启 -
您的代码看起来不错,应该可以工作。也许您需要用
"包装价值?另外,你确定你没有解构process.env吗?您是否 100% 内联使用它,就像在您的示例中一样?还是不使用存储在某个变量中的动态密钥访问它? -
@Danila Wrapping in " 是多余和不必要的,但我同意你的观点,这段代码应该可以工作。我刚刚试了一下
标签: javascript reactjs next.js environment-variables