2017-07-26 139 views
0

我需要一個幫助。我需要在一個配置文件中設置一些通用的全局變量,並在需要時使用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

回答

0

您可以使用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」中使用。 –

0

這不是很清楚,我什麼你特別要求,但對於配置的目​​的,你可以創建自己的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