I was able to find a solution to the problem by presenting. The structure was more or less like this:
I created the settings file in /config/app.js
:
/**
* Centraliza as configurações essenciais do aplicativo.
* @module configuration/app
*/
module.exports = {
/**
* Título da aplicação
* @type {string}
*/
name: env('APP_NAME', 'valor padrao'),
/**
* Ambiente de aplicação
* @type {string}
*/
env: env('APP_ENV', 'production'),
/**
* Gerencia o modo debug da aplicação
* @type {boolean}
*/
debug: env('APP_DEBUG', false),
/**
* URL de acesso a aplicação
* @type {string}
*/
url: env('APP_URL', 'http://localhost'),
/**
* URL dos asset, arquivos estáticos
* @type {string|null}
*/
asset_url: env('ASSET_URL', null),
/**
* Porta onde o serviço web estará ouvindo
* @type {number}
*/
port: env('PORT', 80),
/**
* Zona de fuso horário do aplicativo, formato de data/hora
* @type {string}
*/
timezone: 'America/Sao_Paulo'
}
I created a "Helper" in /start/environmentSettings.js
:
require('dotenv/config');
const fs = require('fs');
const path = require('path');
global.env = function env(param, defaultValue) {
return process.env[param.toUpperCase()] || defaultValue;
}
const rootPath = path.resolve(__dirname, '..', '..', 'config');
function config(param) {
const [file, key] = param.split('.');
const pathFile = path.join(rootPath, file + '.js');
if (fs.existsSync(pathFile)) {
const config = require(pathFile);
return config[key];
}
}
module.exports = config;
In the helper above I am basically creating a global variable env
and exporting the method config
, which we use to access the settings.
Finally we can test like this:
const config = require('./environmentSettings');
console.log(config('app.title'));