Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
Node.js 在服务器端渲染时使用process.env_Node.js_Reactjs_Environment Variables_Server Side Rendering - Fatal编程技术网

Node.js 在服务器端渲染时使用process.env

Node.js 在服务器端渲染时使用process.env,node.js,reactjs,environment-variables,server-side-rendering,Node.js,Reactjs,Environment Variables,Server Side Rendering,我有一个react应用程序,在客户端运行得很好,现在正试图让它在服务器端运行 我将其与create react应用程序样板一起使用: 我遇到了一个问题,我在.env中存储了一些环境变量,但是在服务器上我无法访问这些变量 所以像axios.get(process.env.API_URL+'something')这样的行将通过404,因为process.env.API_URL是未定义的 据我所知,.env是我应该用于此类内容的文件。我错了吗?我应该使用另一种方法来存储公共环境变量吗?或者是否有某种

我有一个react应用程序,在客户端运行得很好,现在正试图让它在服务器端运行

我将其与create react应用程序样板一起使用:

我遇到了一个问题,我在.env中存储了一些环境变量,但是在服务器上我无法访问这些变量

所以像
axios.get(process.env.API_URL+'something')
这样的行将通过404,因为
process.env.API_URL
未定义的

据我所知,.env是我应该用于此类内容的文件。我错了吗?我应该使用另一种方法来存储公共环境变量吗?或者是否有某种方法让节点服务器识别这些值?

您可以(应该)为生产构建提供服务

当您进行
npm运行build
webpack时,会获取
.env
文件中的条目,并用相应的值替换生成中的条目

对于服务器端渲染,您必须在节点服务器中定义环境变量,作为系统环境变量或在后端服务器读取的
.env
上(可能是Web包开发服务器正在使用的)。

根据,为了在静态和SSR应用程序中公开环境变量以作出反应,变量名称的前缀必须为
REACT\u APP\
。这可以防止javascript包中包含敏感和/或不必要的变量