如何在config.js中配置进程环境变量

问题描述:

我需要一个帮助。我需要在一个配置文件中设置一些通用的全局变量,并在需要时使用Node.js获取这些值。在这里我需要实施process.env。我首先在下面解释我的代码。如何在config.js中配置进程环境变量

var port=8989; 
var express=require('express'); 
var morgan = require('morgan'); 
var http=require('http'); 
var bodyParser= require('body-parser'); 
var methodOverride = require('method-override'); 
var mongo = require('mongojs'); 
var session = require('express-session'); 
var multer = require('multer') 
var app=module.exports=express(); 
var server=http.Server(app); 
var admin=require('./route/route.js'); 
app.use(express.static(__dirname + '/public'));  // set the static files location /public/img will be /img for users 
app.use(morgan('dev'));      // log every request to the console 
app.use(bodyParser.urlencoded({ extended: false })) // parse application/x-www-form-urlencoded 
app.use(bodyParser.json()) // parse application/json 
app.use(methodOverride());     // simulate DELETE and PUT 
app.use(session({secret: 'FGDPlexel',resave: true,saveUninitialized: true})); 
app.get('/',function(req,res){ 
    res.sendFile(__dirname + '/index.html'); 
}) 
var storage =multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './uploads'); 
    }, 
    filename: function (req, file, callback) { 
    callback(null, file.fieldname + '-' + Date.now()); 
    } 
}); 
server.listen(port); 
console.log("Server is running on the port"+port); 

在这里,我分配port=8989但在这里我需要创建一个配置文件,并有指定所有变量。在这个server.js该文件将包括和用户将获得所需的values.Please帮助我。

+0

怎么样'dotenv':https://www.npmjs.com/package/dotenv? –

+0

我还没有实施。你能说这可以在我的代码中实现吗? – satya

您可以使用dotenv npm软件包。它需要您以KEY=VALUE的格式(如SECRET_KEY=MEGASECRETKEY)设置带有键值对的.env文件。

const dotenv = require('dotenv'); 

dotenv.load({ 
    path: '.env.globals' // example 
}); 

,您可以访问诸如process.env.SECRET_KEY

+0

我在这里有点困惑。让我解释我对你的解决方案的理解。我将在我的server.js文件中包含上面的内容,并将获得像'process.env.SECRET_KEY'这样的值。我必须创建一个'.env'文件,例如'egl-config.env'。在这里我需要知道如何将值分配给相应的密钥以及该文件将如何包含在服务器文件中。 – satya

+0

用'dotenv.load({path:'.env.globals'// example});'相应的键将从文件中读取并分配给您的'process.env'全局对象。通过使用'path:...'服务器文件将加载你的变量。例如,您可以在文件“PORT = 3000”中使用。 –

这不是很清楚,我什么你特别要求,但对于配置的目​​的,你可以创建自己的config.js文件,并要求它的变量。

例如;

var settings = { 
    port: process.env.PORT 
}; 

module.exports = settings; 

然后在你的server.js中,你可以要求这个文件。

var settings = require('./config.js'); 
+0

'process.env.PORT = settings.port;'line会包含在'config.js'文件里吗?实际上,在这里我需要写'port = process.env.PORT'而不是'port = 8989'。 – satya

+0

@satya:编辑我的答案来解决你的配置问题。请退房。 – Volem

+0

@ Volem:那么端口号是“8989”。这也需要设置。 – satya