[英]Best way to use a configuration file in Node.JS
我有一個Node.JS應用程序的配置文件(以下簡化)
module.exports = function(){
var settings = {
port: '8088'
};
settings.mysql = {
host : 'localhost',
database : 'test'
};
// Override default settings
switch(process.env.NODE_ENV){
case 'production':
settings.port = 8082;
break;
case 'staging':
settings.port = 8083;
break;
}
return settings;
};
當我啟動Express.js應用程序時,我需要此文件進行一些基本設置:
var Config = require('./config'), settings = new Config();
var port = process.env.PORT || settings.port; // set our port
我還需要稍后在DAO(在我的模型中)內使用此文件中的MySQL設置。 那時我調用配置文件(它將再次運行它)
var Config = require('../config'), settings = new Config();
var mysql = require('mysql');
var pool = mysql.createPool(settings.mysql);
顯然,每次我“要求”文件運行時,這似乎都是惰性的/低效的。 我應該將返回的“設置”變量存儲在DAO可以看到的全局變量中,還是應該通過引用將其傳遞給我?
我曾經考慮過要使其成為中間件並添加它為REQUEST,但隨后我需要我的路線(控制器)將其全部傳遞給感覺不合適的DAO(模型)。
只需導出對象本身,而不是將其包裝在函數中-節點模塊在第一次加載后就被緩存,因此它不會再次運行邏輯。
var settings = {
port: '8088'
};
settings.mysql = {
host : 'localhost',
database : 'test'
};
// Override default settings
switch(process.env.NODE_ENV){
case 'production':
settings.port = 8082;
break;
case 'staging':
settings.port = 8083;
break;
}
module.exports = settings;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.