gpt4 book ai didi

node.js - 使用 dotenv 访问 Node.js 中不同文件中的 ENV var

转载 作者:行者123 更新时间:2023-12-02 12:03:53 26 4
gpt4 key购买 nike

我正在开发一个简单的应用程序,它使用 Google Maps API 和 Darksky API;我已经安装了 dotenv 来处理隐藏两者的 key 。在遵循文档之后,我能够完成这项工作,但仅限于需要 dotenv 的文件(app.js)。我需要访问 footer.ejs 文件中的 ENV 变量和weather.js 文件,但其中未定义 process.env。我必须导出 dotenv 吗?这怎么办?谢谢,提前。

app.js

var express = require('express'),
Dotenv = require('dotenv').config(),
app = express(),
bodyParser = require('body-parser'),
mongoose = require('mongoose');

mongoose.connect(process.env.DB_URL);
app.use(bodyParser.urlencoded({extended: true}));
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/assets'));

// HomePage
app.get('/',function(req, res){
res.render('home');
});

app.listen(process.env.PORT || process.env.LOC_PORT,function(err){
if (err) return console.log(err);
console.log('Server Running: '+ process.env.LOC_PORT);
});

最佳答案

您可以创建 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;
},
};

然后只需 import {getEnvVariables} from './env'; 之后即可。

如果您使用 Webpack,您可以将以下插件添加到您的 webback 配置文件中,这样您就不再需要将导入行放入应用程序中的任何文件中:

new webpack.DefinePlugin({
'process.env': env.getEnvVariables()
}),

关于node.js - 使用 dotenv 访问 Node.js 中不同文件中的 ENV var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com