在多个 JS 文件中为 API 密钥使用 dotenv

问题描述

我是网络编程的新手,但一般不会编程。我使用 node.js 创建一个网站,并使用 dotenv 隐藏来自 github 的 API 信息,但在理解某些内容时遇到了一些麻烦。

我的 .env 文件位于根目录中,包含:

GOOGLE_CALENDAR_API_KEY=key_value

我使用 app.js 文件来设置和运行我的服务器并发送 index.html 文件

//jshint esversion:6
const https = require('https');
const bodyParser = require("body-parser");
const express = require("express");
require("dotenv").config();

const app = express();

app.use(express.static("public"));

app.get("/",function(req,res) {
res.sendFile(__dirname + "/index.html");
});

app.listen(5000,res) {
    console.log("Listening on port 5000.");
});

然后我使用另一个名为“custom.js”的脚本文件来运行我的大部分 web 应用程序。在里面,我尝试使用 process.env 来获取 API 密钥。

window.onload = function()
{
  const googleAPIkey = process.env.GOOGLE_CALEDAR_API_KEY;
.
.
.

但我收到错误“未捕获的引用错误:未定义进程”

我还尝试将 require("dotenv").config() 行移动到 custom.js 文件,但失败了。尝试将信息从一个文件访问到另一个文件时我做错了,但我不明白是什么。

任何帮助将不胜感激!

解决方法

据我所知,您试图从客户端浏览器访问 node.js 应用程序的流程变量,但这是不可能的。流程变量只能在 node.js 应用程序的范围内访问,而不能在您运行客户端的浏览器中访问。

,

您还必须在第二个脚本文件中添加 require("dotenv").config();

,

看起来您正在尝试访问客户端/前端的 Process 变量。您无法从客户端浏览器或机器访问这些变量