问题描述
我是网络编程的新手,但一般不会编程。我使用 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 变量。您无法从客户端浏览器或机器访问这些变量