NodeJS 环境变量静态网站访问:“未定义进程”

v8wbuo2f  于 2023-01-12  发布在  Node.js
关注(0)|答案(1)|浏览(133)

我有一个通过11 ty(Node based SSG)开发的静态网站,它包含一个Contact表单,向nodemailer API发送一个带有数据的请求。这两个网站都托管在Render上,分别作为静态网站和Web服务,它们共享一个基本的auth密码,我将其作为环境变量存储在每个项目中。
Web服务可以很好地访问变量。但是,静态网站的事件向我显示了标题为“process”的错误,没有定义,就像在“process.env.VARIABLE_NAME”中一样,这是我访问变量的方式。我尝试在项目中包含一个具有相同密钥的.env文件,并在项目中包含dotenv,但没有任何变化。
我假设静态站点的性质使得环境变量不被处理/应用。这里我可能遗漏了哪些步骤?

rbl8hiat

rbl8hiat1#

您的静态站点运行在与Web服务(其作用类似于服务器)不同的上下文中。由于您的静态站点是从用户浏览器运行的,因此它不理解特定于节点的功能,如加载文件或访问您的进程环境。
将密码添加到静态站点也会带来安全风险,因为用户可以看到您的密码,使用它,并运行他们自己的请求,而您的站点可能没有任何安全性。
一个常用的方法是创建一个自己的API,接收来自静态站点的请求,并直接与API对话,或者创建一个技术堆栈,将页面呈现到服务器(如ServerSideRendering)。这样,您的系统就可以在限制用户请求的同时调用API。

相关问题