使用dotenv访问Node.js中不同文件中的ENV var
我有一个简单的应用程序,我正在使用谷歌地图API和Darksky API;我已经安装了dotenv来处理隐藏这两个密钥的问题。在遵循文档之后,我能够做到这一点,但仅在需要dotenv的文件(app.js)中。我需要访问footer.ejs文件中的ENV变量和weather.js文件,但其中未定义process.ENV。我必须导出dotenv吗?这是怎么回事?提前谢谢 app.js使用dotenv访问Node.js中不同文件中的ENV var,node.js,express,environment-variables,Node.js,Express,Environment Variables,我有一个简单的应用程序,我正在使用谷歌地图API和Darksky API;我已经安装了dotenv来处理隐藏这两个密钥的问题。在遵循文档之后,我能够做到这一点,但仅在需要dotenv的文件(app.js)中。我需要访问footer.ejs文件中的ENV变量和weather.js文件,但其中未定义process.ENV。我必须导出dotenv吗?这是怎么回事?提前谢谢 app.js 您可以创建env.js文件,将环境变量导出如下: const dotenv = require('dotenv');
您可以创建
env.js
文件,将环境变量导出如下:
const dotenv = require('dotenv');
module.exports = {
getEnvVariables: function () {
const vars = dotenv.load();
const jsonVars = {};
for (const key in vars) jsonVars[key] = JSON.stringify(vars[key]);
return jsonVars;
},
};
然后从“/env”导入{getEnvVariables}代码>之后
如果您使用的是Webpack,您可以将以下插件添加到您的weback配置文件中,这样您就不需要在应用程序的任何文件中添加导入行:
new webpack.DefinePlugin({
'process.env': env.getEnvVariables()
}),
谢谢你的帮助。我从weather.js收到一个“意外令牌导入”错误,从env.js收到一个“require is not defined”错误。@halfacreyum抱歉,这是ES6语法,您也可以使用
require
并将我回答中的const
s替换为var
s。对不起,我确实将const切换为var,我应该提到过这一点。我仍然从env.js文件('require is not defined')中得到错误,我正在页脚中加载该文件的脚本。
new webpack.DefinePlugin({
'process.env': env.getEnvVariables()
}),