Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么分解next.js环境变量会导致未定义?_Javascript_Node.js_Environment Variables_Next.js - Fatal编程技术网

Javascript 为什么分解next.js环境变量会导致未定义?

Javascript 为什么分解next.js环境变量会导致未定义?,javascript,node.js,environment-variables,next.js,Javascript,Node.js,Environment Variables,Next.js,我已经创建了一个带有api_密钥的.env文件 在分解值时 const { api_key } = process.env; // = undefined const key = process.env.api_key; // = value 有人能解释一下吗?来自: 注意:为了确保仅服务器机密的安全,Next.js在生成时用正确的值替换process.env.*。这意味着process.env不是标准的JavaScript对象,因此您无法使用对象分解 以及客户端组件 由于NEXT\u PUB

我已经创建了一个带有api_密钥的.env文件 在分解值时

const { api_key } = process.env; // = undefined
const key = process.env.api_key; // = value
有人能解释一下吗?

来自:

注意:为了确保仅服务器机密的安全,Next.js在生成时用正确的值替换
process.env.*
。这意味着
process.env
不是标准的JavaScript对象,因此您无法使用对象分解

以及客户端组件

由于
NEXT\u PUBLIC\u
前缀,该值将内联到发送到浏览器的JavaScript中。此内联发生在构建时,因此在构建项目时需要设置各种
NEXT\u PUBLIC\uu
env


请删除
{}
,然后重试<代码>{}用于存在多个imports@HimanshuSaxena这并不能解释为什么节点结果是未定义的。这是es6的用法-使用解构和其他方法可以处理其他所有事情。您能展示您尝试过的实际代码吗?我是说你用了一些console.log,对吧?或者,您如何知道api_密钥未定义?你能举一个简单的例子来证明这一点吗?这两条线应该是一样的。你到底是如何运行这个脚本的?在什么环境下?如何加载
.env
文件?您使用的是transpiler/build管道吗?@Bergi我使用的是Next.js。我的console.log在我的react组件中。