Eu gosto do node.js porque é muito rápido. Mas também gosto de fazer objetos globais em meu aplicativo. Acho que não há nada de errado com isso. Por exemplo, tenho o global.App
objetivo de manter as coisas de todo o objeto.
Foi muito chato para mim escrever require('fs')
ou require('util')
em todos os arquivos, também acho que não é tão rápido quanto acessar objeto global.
Então eu vim com esta solução:
var node = {};
var modules = ['child_process', 'fs', 'http', 'https', 'cluster',
'crypto', 'dns', 'domain', 'net', 'url', 'util', 'vm', 'path'
];
var loadedModules = {};
modules.forEach(function(moduleName) {
Object.defineProperty(node, moduleName, {
get: function() {
if (!loadedModules[moduleName]) {
loadedModules[moduleName] = require(moduleName);
}
return loadedModules[moduleName];
}
});
});
module.exports = node;
global.node = node;
Ele torna o carregamento lento para todas as bibliotecas padrão como getters de objeto global. node
Posteriormente em meu código:
node.fs.readFile
node.util._extend({}, params);
node.url.parse(node.url.resolve(endpoint, filepath));
node.url.format(urlObj);