2017-07-26 15 views
0

私は助けが必要です。 1つの設定ファイルに共通のグローバル変数を設定する必要があり、Node.jsを使用してそれらの値を必要に応じて取得します。ここで私はprocess.envを実装する必要があります。私は最初に以下のコードを説明しています。Node.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を割り当てていますが、ここで私は1つの設定ファイルを作成する必要があり、そこにすべての変数を割り当てます。このserver.jsにファイルが含まれ、ユーザーが必要な値を取得します。私に手伝ってください。

+0

「dotenv」について:https://www.npmjs.com/package/dotenv? –

+0

私は実装していません。これは私のコードで実装できると言うことができますか? – satya

答えて

0

dotenv npmパッケージを使用できます。 .envファイルをKEY=VALUEという形式のキーと値のペアで設定する必要があります(SECRET_KEY=MEGASECRETKEYなど)。

const dotenv = require('dotenv'); 

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

、あなたはあなたが具体的に求めているものを私のために非常に明確ではありませんが、設定の目的のために、あなたがあなた自身のconfig.jsのファイルを作成し、それを必要とすることができprocess.env.SECRET_KEY

+0

私はここで少し混乱しています。あなたの解決策についての私の理解を説明しましょう。私はserver.jsファイルに上記をインクルードし、 'process.env.SECRET_KEY'のような値を取得します。 'eg-config.env'のような1つの' .env'ファイルを作成する必要があります。ここでは、それぞれのキーにどのように値を割り当てることができ、どのようにそのファイルがサーバファイルに含まれるのかを知る必要があります。 – satya

+0

'dotenv.load({path: '.env.globals' // example});'それぞれのキーはファイルから読み込まれ、 'process.env'グローバルオブジェクトに割り当てられます。 'path:...'を使うことで、サーバファイルはあなたの変数をロードします。あなたのファイル 'PORT = 3000'で使うことができます。 –

0

のようなあなたの変数にアクセスすることができます。

たとえば、

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

module.exports = settings; 

次に、server.jsでこのファイルを要求することができます。

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

'process.env.PORT = settings.port;'行は 'config.js'ファイルの中に含まれますか?実際にはここで 'port = 8989'の代わりに' port = process.env.PORT'を書く必要があります。 – satya

+0

@satya:設定に関する問題を解決するために私の答えを編集しました。チェックしてください。 – Volem

+0

@ Volem:次にポート番号は「8989」です。それはまた設定する必要があります。 – satya

関連する問題