簡體   English   中英

Static 網站訪問環境變量:“process is not defined”

[英]Static website access of environmental variable: "process is not defined"

我有一個通過 11ty(基於節點的 SSG)開發的 static 網站,其中包含一個聯系表單,該表單向帶有數據的 nodemailer API 發送請求。 兩者都托管在 Render 上,分別作為 Static 網站和 Web 服務,它們共享一個基本的身份驗證密碼,我將其作為環境變量存儲在每個項目中。

Web 服務可以很好地訪問變量。 但是,static 網站的事件向我展示了標題“process”未定義的錯誤,如“process.env.VARIABLE_NAME”,這是我訪問它們的方式。 我嘗試在項目中包含一個具有相同密鑰的 secret.env 文件,並在項目中包含 dotenv,但沒有改變。

我假設 static 站點的性質正在使其成為環境變量,因此不會以某種方式處理/應用環境變量。 我可能在這里缺少哪些可能的步驟?

編輯:雖然我似乎可以通過命令行 arguments(然后在構建過程中將其注入代碼)之類的方法來執行此操作,但這對我來說不起作用,因為密碼必須是秘密的在生成的源文件中。 dotenv package 在我的案例中不起作用。 最后,我選擇放棄這種基於密碼的身份驗證,而只是使用蜜罐字段來防止垃圾郵件,並使用 API 中的 CORS Origin 標頭來控制請求源。

您的 static 站點運行在與您的 web 服務(充當服務器)不同的上下文中。 由於您的 static 站點是從用戶瀏覽器運行的,因此它不了解特定於節點的功能,例如加載文件或訪問您的進程環境。

將您的密碼添加到您的 static 網站也會帶來安全風險,因為用戶可以看到您的密碼,獲取它並運行他們自己的請求,而您的網站可能沒有任何安全措施。

通常的方法是創建一個您自己的 API,它接收來自您的 static 站點的請求並直接與 API 對話,或者創建一個將頁面呈現到服務器的技術堆棧(如 ServerSideRendering)。 這樣,您的系統會在您的用戶請求受到限制時負責調用 API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM