【发布时间】:2021-02-04 16:34:32
【问题描述】:
我正在尝试隐藏 API 密钥,并且正在尝试使用 dotenv 来隐藏它们。基本上,我尝试的所有操作都会导致它们以纯文本形式显示,出现“apikey is undefined”错误,使整个 nodejs 服务器崩溃等。这是我正在使用的代码:
.env 文件
APIKEY="XxXxXxXxXxXxXxXxXxXxXxXxX"
app.js 文件
const express = require("express");
const app = express();
const path = require("path");
require('dotenv').config()
const favicon = require("serve-favicon");
app.use(favicon(path.join(__dirname, "public", "images", "favicon.ico")));
app.use(express.static("public"));
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "views"));
app.get("/", function (req, res) {
res.render("home", {apikey: process.env.APIKEY});
});
在我的 home.ejs 文件中,我尝试在此处调用该环境变量:
home.ejs 文件
var api_key = "<%=apikey%>";
此方法导致 API 密钥以纯文本形式链接(不是我想要的)。 If you view the source of the page following the above method
我也试过这样做:
var api_key = APIKEY;
这会导致 APIKEY is undefined 错误。我对 nodejs/express 比较陌生,我无法弄清楚!如何将 APIKEY .env 变量链接到我的 ejs 文件,而不是将其作为纯文本链接?谢谢!
【问题讨论】:
-
看来您确定了“如何让环境变量在 pjs 文件中工作”;但是,您必须意识到,无论您喜欢在服务器端做什么,您发送给浏览器的所有内容都将以文本形式在浏览器中可用。我认为你没有问对问题。
标签: javascript node.js ejs dotenv